Мы используем PHP-специалистов для выполнения различных задач параллельно. Все работает отлично, и у меня есть глупый сценарий оболочки, чтобы развернуть их, когда я хочу их. Будучи программистом (и, следовательно, ленивым), я хотел посмотреть, могу ли я перевернуть их с помощью сценария выскочки.Запуск нескольких экземпляров 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» в сценарии выскочки, чтобы сделать это автоматически?
Например, start instance 1, 2, 3, 4? После этого выйдите их на выключение правильно?
Я полагаю, что я мог бы подключить это к скрипту init.d, но мне было интересно, может ли upstart справиться с чем-то подобным, или если кто-то выяснил эту проблему.
Cheers guys!
Большое спасибо! Я попытался работать с ним аналогичным образом, но мне не хватало бит 'task', поэтому первая итерация цикла будет просто заблокирована. Потрясающие. :) – mkgrunder
Вы также должны проверить http://stackoverflow.com/questions/12084025/restarting-upstart-instance-prcesses, который позволяет не только запускать несколько экземпляров, но и останавливать их. – Evgeny
Я прочитал документацию, но я до сих пор не понимаю, почему этот цикл блокируется на первой итерации, если это не задача?/cc @mkgrunder – Mahn