Запуск beanstalkd работника на удаленном сервере

Моя установка стека состоит из следующего

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) это тоже был путь?

3

Решение

Какая бы машина ни работала queue:listen на это машина, которая выполняет фактическую обработку очереди.

На данный момент все, что вы делаете, это сохранение очередей на machine3, но обрабатывая их на machine1.

Так что вам нужно иметь machine3 запустить queue:listen команда, если вы хотите, чтобы она обработала очередь.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]