2.0.8 • Published 1 year ago

processing-task v2.0.8

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

此模块用户队列中的业务操作

流程

  • 业务任务信息存于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
    }
2.0.8

1 year ago