2017-12-18 5 views
0

私は、ジェンキンスの仕事の詳細を取得し、それをmongo DBに "X"分ごとに格納することです。私は方法を知っているHTTP.call(JenkinsURL)を作らなければならない。私の問題は、特定の間隔でそれを呼び出すことです。流星の中のすべての「X」分のジョブの詳細を取得するためにジェンキンスの呼び出しを行うには?

buildDetails=HTTP.call('GET',buildURL); 

buildURLにはJenkinsのジョブURLがあります。私はこの問題のコードの概要を示すlinkを見つけましたが、私はどのようにしてこれらのコードを動作させるべきかわかりません。私はすべての可能性を試しました。

流星には、X min毎に実行される特定のコードを実行する方法がありますか?

+0

を呼び出す - 説明ください。 '' Meteor.setInterval() '' 'を使うと、Xの時間間隔ごとに何かを実行できます。 – blueren

+0

私は、私が指定したリンクのコードのすべての組み合わせを試したことを意味します。 Meteor.setInterval()を試しましたが、定義どおりに動作しますが、リフレッシュして別のページに移動すると、interval()コードの実行が停止します。 – Snkini

+0

これは、あなたがクライアントから呼び出すためです。クライアントからそれを行う特別な理由はありますか?通常、あなたのユースケースでは、サーバーから呼び出される必要がありますか? – blueren

答えて

1

流星には、X minごとに実行する特定のコードを実行する方法がありますか?

はい、あります。

Meteor.setIntervalこれは、Xの時間間隔ごとに何か繰り返しを行うために使用することができます。

HTTPコールをサーバー内に置くことができます。例:

Meteor.startup({function(){ 

    var timerID = Meteor.setInterval(function(){ 
        buildDetails=HTTP.call('GET',buildURL); 
        // and other things 
        }, 60000) //60000ms = 1 min 
       } 
}); 

あなたはタイマー機能を停止したい、単に私は*すべての可能性を試してみました* Meteor.clearInterval

Meteor.clearInterval(timerID); 
+0

Meteor.setInterval(getAndStore(){ – Snkini

+0

私はそれを修正しました。また、これはあなたが望むように正確に動作するように意図されています。なぜなら、ページリフレッシュが動作を停止させる理由がわからないからです。アプリケーションがシャットダウンされるまで、または明示的に '' clearInterval'''を呼び出すまで、理想的に動作するはずです。 – blueren

+0

Tq、問題は、他のサーバー側コード(ヘルパー、イベント、その他の関数)が実行されたときにgetAndStore()が他の実行まで待機し、HTTP.call()の数が増えれば間隔が初期カウントから始まるということです。スレッドのようにバックグラウンドで実行させる方法はありますか?plsには、あなたが知っている場合は参照。 – Snkini

関連する問題