2017-02-18 4 views
0

POSTを使用してアプリケーションからリモートにジョブを送信しています。 POST要求は、GET要求を使用して状態を確認できるジョブIDを返します。GET要求が特定の変数を持つのを待つ

$http.get('http://localhost:8090/jobs/'+id).then(function successCallback(results) { 
    jobResults = results; 
} 

問題は、ジョブが終了した後に変数を割り当てたいだけで、開始したばかりのときには問題になりません。それを行う方法はありますか?

それが行われた場合、結果は次のようになります。それが行われていない場合はさておき、ステータスメッセージから

{ 
    "duration": "0.171 secs", 
    "classPath": "spark.jobserver.WordCountExample", 
    "startTime": "2017-02-17T22:47:49.291Z", 
    "context": "c4c62dd3-spark.jobserver.WordCountExample", 
    "result": { 
    "word1": 1, 
    "word2": 3 
    }, 
    "status": "FINISHED", 
    "jobId": "994569f9-b6a5-40d3-a4b3-f281276c6716" 
} 

唯一の違いは、「結果」の変数が存在しないということです。

+1

ここで、その変数を使用しますか?ビューで? – digit

+0

@digitはいフロントエンドで更新することを望んでいた – QuantumRich

+1

AngularJS $ httpサービスでコードは毎秒サーバーをポーリングする必要があります。 – georgeawg

答えて

1

あなたの問題は、あなたが間違った場所に解決策を見つけることを試みていると思います。私の見ていることは、あなたの仕事はバックエンドで処理されているので、フロントエンドでそれを更新したいが、それを行うために必要な情報はないということです。 この場合、ジョブが終了したときに、変数を割り当てるためのジョブステータスをチェックするプロセスを実行する必要があります。例えば、setIntervalを使ってそれを行うことができます。

var jobs = []; 
setInterval(function() { 
    for (var i = 0; i < jobs.lenght; i++) { 
    checkJobStatus(); 
    } 
}); 
-1

以下のURLをお試しください。
投稿リクエストからjobIdを取得することを検討してください。

$http.get('http://localhost:8090/jobs/:id',{id : jobId}).then(function successCallback(results) { 
    jobResults = results; 
} 
関連する問題