Не заходя слишком далеко с конечными автоматами, по крайней мере, было бы неплохо представить состояния как для «заданий» (пример: преобразование flv2avi), так и «заданий» (flv2avi 1.flv).
На моемскрипт (Perl), иногда процессы зомби начинают снижать производительность всего скрипта.Это редкий случай, но он является исходным по исходному тексту, поэтому сценарий должен быть в состоянии прекратить чтение очереди больше, позволяя новому экземпляру продолжать выполнение своих задач и заданий;однако, хранение как можно большего количества данных запущенных задач приветствуется.Как только первый экземпляр имеет 1-2 задачи, он уничтожается.
При запуске: проверка на наличие распространенных ошибок (из-за выключения), проверка на наличие известных ошибок (нехватка места, не может прочитать ввод), уничтожение любого, что может бытьубить и установить статус «ожидание», начать все ожидания.
Если вы запускаете конвейерные задания (vlc | ffmpeg, tail -f | grep), вы можете попытаться избежать использования слишком большого количества операций ввода-вывода в вашей программе.вместо того, чтобы делать fork () (плохая идея для PHP?) или просто вызывать / bin / bash -c "prog1 | prog2", это значительно экономит нагрузку на процессор.
Начальные точки: оба / etc / rc.d и cron (проверить процессы, запустить первый экземпляр ||, запустить второй с аргументом 'debug')