Как запретить Ironworker ставить в очередь задачи рабочих, которые все еще выполняются?

У меня есть этот воркер, время работы которого сильно варьируется от 10 секунд до часа. Я хочу запускать этого рабочего каждые пять минут. Это нормально, если работа завершается в течение пяти минут. Однако, если задание занимает больше времени, Iron.io продолжает ставить одну и ту же задачу снова и снова, и во время работы воркера накапливается множество задач одного типа.

Кроме того, очень важно, чтобы задача не выполнялась одновременно, поэтому максимальный параллелизм для этого рабочего процесса установлен равным единице.

Итак, мой вопрос: есть ли способ запретить Iron.io ставить в очередь задачи рабочих, которые все еще работают?


person dft    schedule 30.08.2016    source источник


Ответы (2)


Отвечая на мой собственный вопрос.

Согласно поддержке Iron.io, невозможно запретить IronWorker ставить в очередь задачи рабочих процессов, которые все еще выполняются. Для таких случаев, как мой, лучше иметь мастера-воркера, который занимается планированием, т. е. созданием/постановкой в ​​очередь задач из скрипта через одна из клиентских библиотек.

person dft    schedule 05.09.2016

Лучшим вариантом будет поставить новую задачу из рабочего кода. Например, ваша задача выполняется от 10 секунд до 1 часа и ставится в очередь в конце (последняя строка кода). Это предотвратит накопление задач во время работы воркера.

person Alex    schedule 13.11.2020