我們使用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