在没有Sidekiq pro的情况下完成Sidekiq工作后的行动

时间:2016-04-06 10:30:31

标签: ruby-on-rails sidekiq

这是我的问题。

我有一份' Job'模型有很多交易'。

我有一个事务处理器工作程序,它接受事务的ID并继续处理该作业的所有事务。

例如:

job.transactions.each do |transaction|
   TransactionWorker.perform_async(transaction.id)
end

我的要求是,在所有交易完成后,我应该通过电子邮件与创建此作业的用户建立关系。交易模型有一个名为' status'当工作完成时,它会在工作者本身中更新。

 transactions.status = "complete"
 transaction.save

问题在于,由于Sidekiq是线程化的,因此多个线程一次处理事务。我正在检查

  job.transactions.to_be_processed.count == 0 

用于发送邮件。由于它是线程化的,我每份工作收到的邮件超过1封。

问题:

如果不使用sidekiq pro,应该怎么做才能使这个错误证明? 我想过将作业完成检查移动到事务模型的after_update回调。那会有用吗?

0 个答案:

没有答案