Я нашел решение этой проблемы после того, как посмотрел на источник найма. Проблема в моем случае заключалась в том, что в очереди заданий была заблокированная работа. Из-за этого delayed_job.working оказался равным 1, а не 0. Кроме того, из-за заблокированного задания delayed_job.jobs также был равен 1. И, следовательно, ни один работник не был нанят. Я вычистил все работы из очереди, а затем нанял огонь, и это сработало как шарм.
def hirefire_hire
delayed_job = ::Delayed::Job.new
if delayed_job.working == 0 \
or delayed_job.jobs == 1
environment.hire
end
end
Я думаю, что эта проверка должна быть изменена, чтобы проверить количество не заблокированных заданий или что-то похожее.