Процесс демона Php часто падает

Мы используем beanstalkd для запуска получения заданий от клиента с помощью php и использования pheanstalk в качестве агента php. мы запускаем работника как системный демон php и продолжаем мониторинг, используя monit.

Но он продолжает перезапускаться с частотой один раз в день. После наблюдения проблемы это подтверждает, что нет ошибок на стороне кода. Так каковы шансы?

1 ответ

Решение

PHP не рассчитан на длительный процесс, и поэтому перезапуск сценария иногда, вероятно, полезен, особенно если у вас чистый выход.

Например, вы можете запустить 50/100/1000 заданий в цикле, а затем выйти из сценария для его автоматического перезапуска. Заключение вызова в сценарий в довольно простой сценарий оболочки может проверить возвращаемое значение и затем либо перезапустить немедленно, либо немного замедлить работу, если могут возникнуть проблемы.

Причин, по которым скрипт может внезапно потерпеть неудачу, много и они разные. Утечка памяти может заставить ОС завершить процесс, ошибка может вызвать необработанное исключение или другую фатальную ошибку, или что-то внешнее по отношению к сценарию может вызвать сбой.

Трудная часть фоновых рабочих для очередей связана с (потенциальными) проблемами, которые могут помешать скрипту работать постоянно. Подробные журналы могут очень помочь в попытке отследить такие проблемы.

Другие вопросы по тегам