Моя установка стека состоит из следующего
Machine1 — Главный сервер (работает laravel)
machine2 — MySql Server для кодовой базы laravel
Machine3 — Бобовый стебель
У меня есть настройка Supervisord на Machine1 и добавил следующий слушатель очереди
[program:queue1]
command=php artisan queue:listen --queue=queue1 --tries=2
...
Мой файл конфигурации очереди laravel (app / config / queue.php) читает следующее
'beanstalkd' => array(
'driver' => 'beanstalkd',
'host' => '--- Machine3 IP ---',
'queue' => 'queue1',
'ttr' => 60,
),
И я установил beanstalkd на Machine3 вместе с консолью Beanstalk и вижу, как мои задачи помещаются в очередь и успешно выполняются. Однако я не уверен, если Machine3 фактически выполняет их, и причина моего подозрения заключается в высокой загрузке ЦП на главном сервере по сравнению с отсутствием скачков использования ЦП на Machine3
Я полностью отключил свой сервер beanstalkd, чтобы проверить, продолжает ли очередь обрабатываться, и в результате laravel сообщило об ошибке, указывающей, что он не может подключиться к серверу beanstalkd.
Я где-то читал, что вам нужно иметь свою кодовую базу laravel на сервере beanstalkd (Machine3) это тоже был путь?
Какая бы машина ни работала queue:listen
на это машина, которая выполняет фактическую обработку очереди.
На данный момент все, что вы делаете, это сохранение очередей на machine3, но обрабатывая их на machine1.
Так что вам нужно иметь machine3 запустить queue:listen
команда, если вы хотите, чтобы она обработала очередь.
Других решений пока нет …