Есть ли эквивалент forever.js для PHP для непрерывного запуска моих скриптов?
Я иногда использую forever.js для быстрого и грязного развертывания приложений типа CLI Node.js в производственных средах, где я не хочу, чтобы полный < развертывание href= "http://supervisord.org/" > supervisord.
Мне было интересно, был ли эквивалент для PHP? На данный момент у нас есть система обработки очереди, которая получает сообщения от SQS и обрабатывает их синхронно в базу данных (это не может быть сделано async, поскольку это вызывает все виды от неприятных проблем с блокировкой строк в этом конкретном случае использования.) В настоящий момент он работает с минуты на минуту, используя cron, но он часто заканчивается раньше, и я хочу, чтобы он снова начал работать. Я не могу запускать несколько процессов за один раз.
Любые идеи * nix command/software/ bash приветствуются.
Ответы
Ответ 1
Просто используйте forever
с вашим PHP скрипт (используйте аргумент -c
, чтобы навсегда использовать php
):
$ cat test.php
<?php
sleep(3);
print("foobar\n");
exit;
?>
$ forever -c php test.php
foobar
error: Forever detected script was killed by signal: null
error: Forever restarting script for 1 time
foobar
error: Forever detected script was killed by signal: null
error: Forever restarting script for 2 time
...
Ответ 2
Я только что открыл этот инструмент supervisord, и он отлично работает. Я использовал этот трехочковый учебник, чтобы запустить его за считанные минуты!
Если я правильно помню навсегда script не перезагружать при перезагрузке сервера?