我们使用PHP gearman worker并行运行各种任务。一切都很顺利,而且我有一些愚蠢的小外壳脚本可以在我想要的时候旋转它们。作为程序员(因此懒惰),我想看看我是否可以通过一个暴发户脚本旋转这些。自动启动多个upstart实例
我想通了如何使用实例节,所以我可以用一个实例号开始他们:
description "Async insert workers"
author "Mike Grunder"
env SCRIPT_PATH="/path/to/my/script"
instance $N
script
php $SCRIPT_PATH/worker.php
end script
而这个伟大的工程,像这样开始他们:
sudo start async-worker N=1
sudo start async-worker N=2
的我想要使用这些工作人员的方式是启动一些工作(也许每个核心一个),我想在启动时这样做。要清楚,我不需要用暴发户脚本来检测核心数量。我很高兴只说“做8个实例”,但这就是为什么我想要多次运行。有没有办法让我在新手脚本中使用“start on”子句自动执行此操作?
例如,启动实例1,2,3,4?那么让他们正常关机退出?
我想我可以把它钩到一个init.d脚本中,但我想知道新贵是否可以处理这样的事情,或者如果有人已经找到了这个问题。
干杯家伙!
非常感谢!我试图用类似的方式解决它,但是我错过了'任务'位,所以循环的第一次迭代就会被阻塞。真棒。 :) – mkgrunder 2012-01-09 01:42:42
你也应该结帐http://stackoverflow.com/questions/12084025/restarting-upstart-instance-prcesses,它允许不仅启动多个实例,但也阻止它们。 – Evgeny 2012-10-23 15:17:15
我已阅读文档,但我仍然不明白,为什么该循环在第一次迭代中被阻塞,除非它是一项任务?/cc @mkgrunder – Mahn 2014-08-29 10:55:54