使用消息队列处理异步任务

hpy 83 2023-03-06

需求描述

将现在一些耗时接口,转化为异步。

模型

实现AsyncTask接口,动态代理

@MQAsync

{
    "uid": 1,
    "status": "enqueued",
    "type": "documentAdditionOrUpdate",
    "canceledBy": null,
    "details": { },
    "error": null,
    "duration": null,
    "enqueuedAt": "2021-08-10T14:29:17.000000Z",
    "startedAt": null,
    "finishedAt": null
}

Task status

  • enqueued: the task has been received and will be processed soon
  • processing: the task is being processed
  • succeeded: the task has been successfully processed
  • failed: a failure occurred when processing the task. No changes were made to the database
  • canceled: the task was canceled

流程

当调用异步任务时,会返回一个summarized task object,status初始状态为enqueued,当开始处理时,status变成processing,当结束时,变为succeeded。