与运行长作业(javascript,node.js)的第三方API同步的最佳实践

Best practice to sync with 3rd party API running long jobs (javascript, node.js)

本文关键字:API 第三方 同步 最佳 js 作业 运行 javascript node      更新时间:2023-09-26

首先,我对javascript和node.js很陌生。因此,很可能会有一些简单的解决方案来解决我的问题。

我有一个小型node.js应用程序,它调用第三方(REST)API来启动作业。作为API的响应,我只得到一个可以用来请求当前作业状态的键。有两个相互依赖的工作,所以我需要同步他们的开始。

示例:

工作A&B.他们可以开始调用这些api:http://host/start/A分别。http://host/start/B

上面API的回报是这样的:

{ 
  "job":"A",
  "key":"someRandomKey"
}

然后还有另一个API,用于检查(任何作业的)状态:http://host/status/someRandomKey

作为这个API的结果,我得到:

{
  "key":"someRandomKey",
  "status":"[RUNNING|SUCCESSFUL|FAIL]"
}

只有在作业A成功完成后,我才能开始作业B!

现在的问题是:

如何有效地同步作业A的状态?

一旦作业A启动(我得到了作业密钥),我就可以启动一个循环,定期检查作业A的状态,直到它不成功。在这里,我可能会使用超时,每10秒检查一次变化。

但我不敢相信,并没有什么库或工具可以更好地为我做到这一点。这里有什么建议吗?

Agee with@jfriend00如果您没有修改api的权限,那么轮询是唯一的选择。您可以使用一些插件进行更容易的集成,例如Smartupdater