2016-04-19 2 views
3

アトラスボードジョブを構築する際に、データがウィジェットにプッシュされる場所とタイミングを制御したいと思います。スケジューラを使用しないアトラスボードジョブの使用

  1. 「間隔」設定パラメータが文書化されている場所が見つかりませんでした。ジョブが各間隔msごとにスケジュールされていることがわかりました。

  2. 私の仕事がウィジェットを更新するとき、私はコントロールしたいと思います。働いているように見えるように私は幸せだったが、私は、ログメッセージに気づいたよりも、最初は

    setInterval(function() { 
        x = x+1; 
        jobCallback(null, {title: config.widgetTitle + " - "+x}); 
    }, 10000); 
    

:私は小さいため、テストをしました

[dashboard: xxx] [job: xxx] 14:04:27.93 <warn> WARNING!!!!: job_callback executed more than once for job xxx in dashboard xxx (scheduler.js) 

[dashboard: xxx] [job: xxx] 14:04:27.96 <warn> WARNING!!!!: job_callback executed more than once for job xxx in dashboard xxx (scheduler.js) 

[dashboard: xxx] [job: xxx] 14:04:37.94 <warn> WARNING!!!!: job_callback executed more than once for job xxx in dashboard xxx (scheduler.js) 

私はさらにいくつかの後にそれを追加することができますジョブが複製されているように見え、グローバルパラメータはジョブインスタンス間でグローバルな価値を維持していないように見えます - 例えば、単一の「定期ジョブ」が10ジョブになった直後など100以上。

データがウィジェットにプッシュされたときの制御を強化する方法はありますか? https://bitbucket.org/atlassian/atlasboardhttp://atlasboard.bitbucket.org/よりも優れた文書がありますか?

答えて

0

私は検索中にjobWorkerコードを探しました(どこにもドキュメントが見つかりませんでした)。

jobWorkerに追加されたpushUpdateメンバ関数があります。この関数は、ジョブonInit()で最もよく使用されているように見えます。このようにして、この関数は一度だけ有効になります。何のスケジューラは、あなたの仕事のために活性化されないことを意味 - あなたはアップデートのスケジューリングの制御を取る場合、ジョブonRun()を実装する必要がないこと

onInit: function (config, dependencies) { 
    var jobWorker = this; 
    var x = 0; 
    setInterval(function() { 
     x = x+1; 
     jobWorker.pushUnpdate({title: config.widgetTitle + " - "+x); 
    }, 10000); 
} 

注意。

関連する問題