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

Моя настройка стека состоит из следующих

Machine1 – Основной сервер (Запуск laravel)
Machine2 – сервер MySql для кодовой базы laravel
Machine3 – работник Beanstalkd

У меня есть настройка Supervisord on 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 на самом деле их выполняет, и причиной моего подозрения является использование High CPU на главном сервере по сравнению с отсутствием всплесков в использовании CPU на Machine3

Я полностью закрываю свой сервер beanstalkd, чтобы проверить, все еще обрабатывается очередь, и результатом была ошибка, сообщаемая laravel, указывающая, что он не может подключиться к серверу beanstalkd.

Я где-то читал, что вам нужно иметь вашу кодовую базу laravel на сервере beanstalkd ( Machine3 ) тоже, действительно ли это способ?

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

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

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