sidekiq如何知道批处理何时完成所有工作?

时间:2016-05-31 13:04:55

标签: ruby-on-rails ruby sidekiq

batch = Sidekiq::Batch.new
batch.description = "Batch description (this is optional)"
batch.on(:success, MyCallback, :to => user.email)
batch.jobs do
  rows.each { |row| RowWorker.perform_async(row) }
end

sleep(x_seconds)

batch.jobs do
  rows.each { |row| RowWorker.perform_async(row) }
end

puts "Just started Batch #{batch.bid}"

在上面的代码中,有可能在添加下一个批处理作业之前调用回调。那么有没有办法通知sidekiq pro不要调用回调,因为批处理中的作业尚未添加?

1 个答案:

答案 0 :(得分:2)

不,你不能这样做。完成第一个作业块后,您无法安全地向批处理添加更多作业,但该批处理中的另一个作业除外。