这是我的问题。
我有一份' 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回调。那会有用吗?