【发布时间】:2016-05-18 13:28:25
【问题描述】:
首先,我对 javascript 和 node.js 还是很陌生。所以很有可能会有一些不错的简单解决方案来解决我的问题。
我有一个小型 node.js 应用程序,它调用第 3 方 (REST) API 来启动作业。 作为 API 的响应,我只得到一个可用于请求当前作业状态的密钥。有两个依赖作业,所以我需要同步它们的开始。
示例:
工作 A 和 B。他们可以开始调用这些 api:http://host/start/A resp。 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 秒检查一次更改。
但我不敢相信,没有一些图书馆或工具可以更好地为我做这件事。这里有什么建议吗?
【问题讨论】:
-
有更好的方法来设计不需要另一端轮询以知道何时完成的 API,但如果您坚持轮询 API 以获取状态结果,那么除了在计时器上轮询之外没有其他选择。唯一的选择是多久轮询一次。
标签: javascript node.js api