用于触发长时间运行任务的 CRUD 操作的 REST API 最佳实践

时间:2021-03-01 16:09:51

标签: c# api rest hangfire

在我的架构中,我有一组实体,这些实体在创建/更新时会触发一个长时间运行的任务,该任务执行长时间的重新计算(大约 6-7 分钟)。

实际上我在 Hangfire 中触发了任务,我想将令牌传递给客户端,该令牌可用于查询另一个端点以监控长时间运行的任务进度。最好的方法是什么?

这样可以吗?或者有更好/标准的方式来向客户展示结果吗?

{
   "data": {
      "id": 2,
      "dateCreated": "2021-02-11T17:10:17.16",
      "userCreated": "",
      "dateModified": "2021-02-11T17:10:17.16",
      "userModified": "",
      "code": "SPEC-002",
      "name": "My entity",
      "_links": [
        // HATEOAS links
      ],
      "_tasks": [
        // long running tasks info
      ]
  }
}

1 个答案:

答案 0 :(得分:1)

通常我会通过以下方式解决这个问题:

  1. 发出请求后,返回 202 Accepted
  2. 在响应中,返回具有最新状态的链接。我通常为此使用 Link 标头,但您也可以使用 HAL 链接。
相关问题