processing-task
v2.0.8
Published
辅助mq队列业务
Downloads
3
Readme
此模块用户队列中的业务操作
流程
- 业务任务信息存于redis
- mq中 pvmed-algorithm模块消费时根据业务任务状态分开不同行为
- disable 当业务任务被取消时,任务状态设置为disable, 消费者遇到此种任务,则以失败处理
- processing 当消费者开始消费时,将任务状态设置为processing
- stage 当算法调用成功从mq出栈时,将状态设置为stage,表示阶段性完成
- 行为发生于algo-adapter模块中
- waiting 当将业务任务推进mq时, 同时使用push,将业务信息记录于redis, 并将任务状态设置为waiting。
- faster 当由于某种原因,需要提升任务中某一任务的优先级,将把未到processing的任务cancel取消, 重新推入优先级更高的任务,并将状态设置为faster,
- finish 当入库成功时,算法流程走完,状态将设置为finish,但此状态于设计上暂无使用,因流程结束将删除redis中的信息
- fail 流程失败,则设置为fail,通finish
- 流程图(待补)
结构设计
sort set结构存储多个未被完成的business任务, scope现阶段是由timestamp,一次默认是取最新的20个
一次business任务由一到多个普通算法任务组成, 基本组成结构如下
{ "patient_name": "xx", "patient_id": "xx", "algo_type": "xx", "is_auto": true, "taskId1": "uuid" }
每个普通的算法任务记录的数据结构
{ "business_id": "xxx", "algo_name": "oar", "status": 1 }