【发布时间】:2012-07-06 03:55:25
【问题描述】:
我有一个大任务,分几个主要步骤进行:步骤 A 必须在开始步骤 B 之前完成,等等。但每个主要步骤都可以分成多个进程,在我的例子中,使用 Delayed::Job。
问题:有没有一种简单的技术可以在所有流程都完成步骤 A 之后才开始步骤 B?
注意 1:我不知道 先验 有多少外部工作人员已启动,因此保持已完成工作人员的引用计数无济于事。
注意 2:我不希望创建一个工作人员,其唯一工作是忙于等待其他工作完成。 Heroku 工人要花钱!
注意 3:我考虑让每个工作人员检查 after 回调中的 Delayed::Job 队列,以确定它是否是在步骤 A 上工作的最后一个,在这种情况下,它可以启动步骤 B。这可能有效,但似乎可能充满了陷阱。 (在没有更好的答案的情况下,这是我要采用的方法。)
【问题讨论】:
标签: ruby-on-rails-3 delayed-job