【发布时间】:2020-04-21 17:43:44
【问题描述】:
我正在寻找一种设计模式,它可以让我“加入”几个 ActiveJobs,这样当它们都完成后,我可以继续执行另一项任务。
假设我有工作 A、B 和 C,需要不同的时间才能完成。当他们都完成后,我想开始工作 D。
这是一种常见的设计模式吗?我可以用什么来实现这一目标?我想到了数据库中的一个表,它只记录要完成的作业总数,然后随着每次完成它递减计数器,当它为零时,任务 D 排队。但我认为计数器可能存在问题 - 我需要在读写之间锁定表?
(这是 Rails 6 和 Sidekiq 6)
谢谢...
【问题讨论】: