通过REST API检测任务何时完成

通过REST API检测任务何时完成,rest,nexus,Rest,Nexus,Sonatype的Nexus存储库服务器提供了一个经典的RESTAPI。当通过RESTAPI触发操作时,调用立即返回,通过其状态代码指示操作是否成功启动。我正在寻找一种方法来检测工作是否以及何时成功完成 在我的具体案例中,我正在启动一个备份任务,以序列化格式将配置数据库写入磁盘: curl -X POST "$mynexus/service/rest/v1/tasks/$task-id/run" -H "accept: application/json"

Sonatype的Nexus存储库服务器提供了一个经典的RESTAPI。当通过RESTAPI触发操作时,调用立即返回,通过其状态代码指示操作是否成功启动。我正在寻找一种方法来检测工作是否以及何时成功完成

在我的具体案例中,我正在启动一个备份任务,以序列化格式将配置数据库写入磁盘:

curl -X POST "$mynexus/service/rest/v1/tasks/$task-id/run" -H "accept: application/json"
它立即返回204“任务已运行”

但是,在发生这种情况几分钟后,手动检查表明该任务创建的磁盘上文件仍在增长。当然,我可以尝试观察
lsof
的输出,直到该任务似乎完成为止,但这是非常不切实际的,需要对服务器进行root访问,并且还破坏了REST设计

A这里自2016年以来一直没有收到答案,因此我将以更一般的方式提问,希望答案更普遍适用:

当与Sonatype Nexus 3.x系列服务器对话时,REST客户端如何检测到服务器端的操作已完全完成


如果没有这样的方式,你会考虑这个问题吗?或者你建议创建一个自定义的解决方案吗?< /P> < P> <代码> Nexus 3 < /代码>有一个get任务API端点,它将给你一个特定任务的不同信息,包括它的代码> CurrnSturt< /Calp>

GET /service/v1/tasks/{id}
API响应示例取自以下链接文档:

{
“id”:“0261aed9-9f29-447b-8794-f21693b1f9ac”,
“姓名”:“你好,世界”,
“类型”:“脚本”,
“消息”:空,
“当前状态”:“正在等待”,
“lastRunResult”:空,
“nextRun”:空,
“lastRun”:空
}

参考:

获取$mynexus/service/rest/v1/tasks/$task id
应该返回一个json dict,其中包含一个名为
currentState
@Zeitounator的字段,似乎就是它!你为什么不把你的评论贴出来作为回答,这样我就可以接受了?