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