Rails 和 ActiveJobs - 我可以像线程一样'join'它们吗?



我正在寻找一种设计模式,它可以让我"加入"几个ActiveJobs,这样当它们都完成时,我可以继续执行另一项任务。

假设我有工作A、B和C,它们需要不同的时间才能完成。当它们全部完成时,我想启动作业D.

这是常见的设计模式吗?我可以用什么来实现这一点?我想到了数据库中的一个表,它只记录要完成的作业总数,然后在每次完成时递减计数器,当计数器为零时,任务D就会排队。但我认为计数器可能有问题——我需要在读取和写入之间锁定表?

(这是Rails 6和Sidekiq 6(

谢谢。。。

如果您正在使用Sidekiq,这被称为Batch。这是Sidekiq Pro的一个商业功能。

https://github.com/mperham/sidekiq/wiki/Batches

相关内容

  • 没有找到相关文章

最新更新