Автоматический запуск нескольких экземпляров выскочки

Мы используем PHP gearman worker для параллельного выполнения различных задач. Все работает отлично, и у меня есть маленький глупый сценарий оболочки, который бы раскручивал их, когда они мне нужны. Будучи программистом (и, следовательно, ленивым), я хотел посмотреть, смогу ли я раскрутить их с помощью скрипта-выскочки.

Я придумал, как использовать раздел экземпляра, поэтому я могу начать их с номера экземпляра:

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, но мне было интересно, может ли выскочка справиться с чем-то вроде этого, или кто-нибудь выяснил эту проблему.

Ура, ребята!

28
задан mkgrunder 30 December 2011 в 17:05
поделиться