我目前正在使用Pheanstalk(beanstalkd)来处理使用多个worker的多个作业。我想知道是否有一种常用的方法来确定所有工作是否都已完成,因为工人是异步运行的。
我想过为最后一份工作添加一个“已完成”标志,并使用工人来检查该标志。问题是 last 工作并不总是工人完成的最后一个工作。工人可能会挂断,崩溃等。
答案 0 :(得分:0)
如果您想知道它们何时完成,您需要每个作业标记其完成,并等待所有标志设置完成。正如您所指出的那样,对于多个工作人员的一系列工作的完成顺序无法保证。
这项工作是否可以作为单个作业排队,而不是多个作业,因此等待单个作业完成是一件简单的事情?
也许您还应该考虑是否需要知道这些工作何时完成。例如对于图像处理,可以显示占位符图像,直到实际图像准备好。如果你真的需要等待它们全部完成,那么它们可能不适合异步工作队列。
要获得更好的答案,您可能需要详细说明您的问题,或提供更具体的示例。
干杯! 保罗