【问题标题】:Best practice to sync with 3rd party API running long jobs (javascript, node.js)与运行长作业(javascript、node.js)的第 3 方 API 同步的最佳实践
【发布时间】: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


【解决方案1】:

如果您无权修改 api,请使用 @jfriend00,然后轮询是唯一的选择。 您可以使用一些插件来更轻松地集成,例如Smartupdater

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 2018-10-04
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    相关资源
    最近更新 更多