Gearman(使用PHP) - 可以向所有工作人员发送工作/消息吗?

时间:2011-10-05 15:38:46

标签: php gearman

我是Gearman的新手,但我理解一般概念。我意识到这不是你通常想做的事情......但我想知道是否有办法向所有工人发送“工作”?

我有一个监控我的工作人员的脚本,并在他们死后重生他们。当我想要杀死/重生所有工人流程时,我希望能够发出一份说“死”的工作。

这可能吗?谢谢!

1 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题。

最简单的方法是为您拥有的每个工人发送“杀死”工作。一旦他们全部被杀,然后重生他们。这种方法的缺点是你必须等到所有工人都死了才能开始重生。如果您现有的脚本立即重新生成,那么您将遇到问题。

另一种方法是为每个工作人员注册一个唯一的任务。例如,如果您有两个工作人员,请为第一个工作人员注册任务“kill_001”,为第二个工作人员注册“kill_002”。要杀死您的工作人员,请确定要启动的唯一作业(“kill_001”,“kill_002”),然后将其发送出去。重生工人应该有新的唯一任务,即如果尚未被杀死,则不要注册新工作“kill_001”。虽然这种方法可能需要更多工作,但它可以让您在不停机的情况下重新生成工作人员。