3

我目前正在使用 Pheanstalk (beanstalkd) 来处理多个使用多个工人的作业。我想知道是否有一种通用的方法来确定所有作业是否都已完成,因为工作人员是异步运行的。

我曾考虑在发布的最后一份工作中添加一个“已完成”标志,并使用工作人员检查该标志。问题是最后一份工作并不总是工人完成的最后一份工作。工人可能会被挂断,崩溃等。

4

1 回答 1

1

如果您想知道它们何时全部完成,则需要每个作业标记其完成,并等到所有标记都设置为完成。正如您所指出的,对于跨多个工人的一组工作的完成顺序没有任何保证。

是否可以将该工作作为单个作业而不是多个作业排队,以便等待该单个作业完成是一件简单的事情?

也许您还应该考虑是否需要知道这些工作何时完成。例如,对于图像处理,可以在实际图像准备好之前显示占位符图像。如果您真的需要等待它们全部完成,那么它们可能不适合异步工作队列。

为了获得更好的答案,您可能需要详细说明您的问题,或者提供更具体的示例。

干杯! 保罗

于 2012-04-10T11:29:53.213 回答