我有几个工作人员正在使用 Sidekiq 运行并使用 Sidetiq 进行调度。我正在寻找有关在执行回调之前等待所有工作人员完成的最佳方法的建议,类似于 Sidekiq-Pro 的批处理功能。任何关于可能选项的建议将不胜感激!
问问题
5231 次
3 回答
5
你可以写一个方法:
def wait_for_sidekiq
sleep(1) until Sidekiq::Workers.new.size == 0 && Sidekiq::Queue.new.size == 0
end
我还建议您首先确保作业排队:
def wait_for_queuing
sleep(1) until Sidekiq::Queue.new.size > 0 || Sidekiq::Workers.new.size > 0
end
这是必需的,因为有时第一个方法可能会在作业排队之前几毫秒执行,因此它根本不会等待。
于 2016-03-02T13:12:16.967 回答
1
你应该看到这个Sidekiq-batch gem,我已经尝试过了,它就像 Sidekiq 的 Pro Batch 一样工作,而且它是免费的
希望这可以帮助
于 2017-04-06T02:44:09.787 回答