Есть ли простой способ справиться с конкуренцией BJ - PullRequest
1 голос
/ 10 февраля 2011

Есть ли способ установить задания в BJ и убедиться, что 2 определенного "типа" не работают одновременно?

У нас работает 24 единорога, и это позволит BJ запускаться для каждого из них.из тех.Это не имеет большого значения, потому что нам нравится, когда несколько обработчиков заданий выбивают фоновую задачу.Исключением является импорт данных.Мы хотим быть в состоянии сказать ему, чтобы он не запускал более одного из них одновременно.

Возможно ли это в BJ или мы должны просто перейти к чему-то вроде resque?

1 Ответ

1 голос
/ 10 февраля 2011

Один из способов сделать это - ограничить задания импорта данных определенным уровнем приоритета, а затем убедиться, что только одно отложенное задание выбирает задания с таким приоритетом.Например, если вы хотите, чтобы все ваши другие задания выполнялись с приоритетом от 0 до 99, и чтобы ваши задания импорта данных выполнялись с приоритетом 100, то все ваши отложенные задания могут работать с min_priority от 0 до max_priority 99и затем вы могли бы иметь одного работника с отложенными заданиями, работающего от min_priority 100 до max_priority 100, гарантируя, что только один работник выполнял эти задания.Это обеспечит одновременное выполнение двух заданий импорта данных (приоритет 100).

...