Laravel Queue с AWS Elastic Beanstalk

На моем локальном сервере я могу без проблем использовать очередь, просто используя: php artisan queue:work.

Но на моем сервере в AWS очередь не работает.

Моя очередь соединений database, и письма синхронизации отправляются без проблем.

Я проверил в таблице заданий и вижу свои очереди, но по неизвестной причине он никогда не запускается.

Нужно ли выполнять какую-то другую настройку на сервере AWS Elastic Beanstalke?

Я пытался использовать вручную

php artisan queue:listen
php artisan queue:work

Оба потерпели неудачу.


person Thiago Valente    schedule 06.11.2019    source источник
comment
С чем они терпят неудачу?   -  person mrhn    schedule 07.11.2019
comment
@mrhn, когда я использую команду и просто замораживаю свой терминал и не запускаю очереди.   -  person Thiago Valente    schedule 07.11.2019
comment
вы можете настроить службу systemd для перезапуска очереди при развертывании. Инструкции, приведенные в этом вопросе   -  person otaku    schedule 11.05.2021


Ответы (1)


Что нужно проверить:

  1. Попробуйте указать имя подключения: php artisan queue:work database

  2. В противном случае убедитесь, что ваш файл env на EC2 ссылается на правильный QUEUE_DRIVER QUEUE_DRIVER=database по умолчанию в этом случае.

  3. Проверьте config/queue.php на наличие правильных настроек по умолчанию, если вы не указали драйвер очереди в файле env default' => env('QUEUE_DRIVER', 'database')

  4. Запустите php artisan config:cache на своем экземпляре EC2, чтобы перезагрузить изменения env.

И вам нужно использовать только одну из двух команд, рекомендуется php artisan queue:work в качестве состояния приложения кэширования, но запускать php artisan queue:restart каждый раз, когда вы отправляете изменения кода.

Рекомендуется установить и настроить супервизор: https://laravel.com/docs/5.8/queues#supervisor-configuration

Он позаботится о перезапуске работника очереди при перезапуске EC2 или сбое очереди.

person Manpreet    schedule 07.11.2019
comment
Ваш чек-лист мне помог. Моя очередь не работала только потому, что я не использовал php artisan config:cache. После этой команды моя очередь работала как по маслу. большое спасибо - person Imran Hossain; 10.05.2020