Как правильно выйти из ремесленника на отключенном бобовом стебле?

Я использую laravel 5.1 с beanstalkd, поддерживаемым супервизором.

Проблема в следующем: 1) очередь ремесленников: work beanstalkd --sleep=3 --tries=3 --daemon 2) sudo service beanstalkd stop

Это все. Я получил 400G ошибок в моем laravel.log за 24 часа:

[2015-10-06 17:09:18] local.ERROR: exception 'Pheanstalk\Exception\ConnectionException' with message 'Socket error 111: Connection refused (connecting to localhost:11300)' in /home/glue/proj/crowdbanner/vendor/pda/pheanstalk/src/Socket/NativeSocket.php:45

Как избежать этого правильно и остановить рабочего, когда beanstalk мертв?


person alexglue    schedule 06.10.2015    source источник


Ответы (1)


Как вы могли бы попытаться/перехватить любое другое исключение - и делать все, что вам нужно, от сна и повторной попытки позже до полного выхода.

try {
    // reserve a job
    // act on the job
    // delete the job if it's complete.
} catch (Pheanstalk\Exception\ConnectionException $e) {
    echo "can't connect to Beanstalkd";
    exit 99;
}
person Alister Bulman    schedule 06.10.2015