2016-04-19 2 views
3

При создании задания Atlasboard я хотел бы контролировать, где и когда данные будут перенесены в виджет.Использование задания Atlasboard без планировщика

  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) 

Я мог бы добавить, что после того, как несколько больше минут, когда работа, похоже, копирует себя, а глобальные параметры, похоже, не сохраняют свою глобальную ценность между экземплярами задания - так что вскоре после того, как моя единственная «повторяющаяся работа» станет десятью заданиями, чем 100 и т.д.

Является ли re, чтобы получить лучший контроль, когда данные будут перенесены в виджет? Есть ли более эффективная документация, чем https://bitbucket.org/atlassian/atlasboard и http://atlasboard.bitbucket.org/?

ответ

0

В ходе поиска я изучил следующее и заглянул в рабочий документ (я не мог найти документацию нигде).

Существует функция pushUpdate, которая была добавлена ​​в jobWorker - кажется, что она лучше всего используется во время работы onInit() - таким образом мы заверяем, что она активируется только один раз!

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

Обратите внимание, что если взять контроль над планированием обновлений, нет необходимости осуществлять OnRun работы() - это означает, что ни один планировщик не будет активирован для вашей работы.

Смежные вопросы