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



在我的体系结构中,我有一组实体,当创建/更新时触发长时间运行的任务,执行长时间的重新计算(大约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. 请求完成后,返回202 Accepted
  2. 在响应中,返回带有最新状态的链接。我通常使用Link头,但你也可以使用HAL链接。

最新更新