2016-05-18 11 views
2

まずはjavascriptとnode.jsの新機能ですだから、私の問題に対して、すてきで簡単な解決策が存在する可能性はかなり高いです。長いジョブ(javascript、node.js)を実行する第三者APIとの同期のベストプラクティス

私はジョブを開始するために第三者(REST)APIを呼び出す小さなnode.jsアプリケーションを持っています。 APIからの応答として、現在のジョブのステータスを要求するために使用できるキーのみを取得します。従属ジョブが2つあるので、自分のスタートを自分の側に同期させる必要があります。

例:http://host/start/A RESP:

ジョブズA & B.彼らは、これらのAPIを呼び出して起動することができます。 APIの戻り上記http://host/start/B

このような何か:

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

その後、別のAPIがあり、(どんな仕事の)状態を確認するには:

http://host/status/someRandomKey

私が手にこのAPIの結果として、

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

ジョブAは、ジョブAが正常に終了した後にのみ起動できます。

そして今の質問:

効果的にジョブAの状態を同期する方法は?

ジョブAが開始されたら(私はジョブキーを取得しています)、ジョブAのステータスを定期的にチェックして成功しなくなるまでループを開始できます。ここでは、タイムアウトを使用して、10秒ごとに変更を確認しています。

しかし、私は信じられませんが、私にはより良い方法でそれを行うためのライブラリやツールはありません。ここに何か提案はありますか?

+1

終了時を知るためにポーリングする必要がないAPIを設計するより良い方法がありますが、ステータス結果のためにAPIをポーリングすると、タイマーにポーリングする以外に他のオプションはありません。プレイする唯一のオプションは、それをポーリングする頻度です。 – jfriend00

答えて

0

@ jfriend00を持つAgee apiを変更するアクセス権がない場合は、ポーリングだけが唯一のオプションです。 プラグインを使用すると、より簡単に統合できるようになります。Smartupdater

関連する問題