Laravel Queue с AWS Elastic Beanstalk - PullRequest
0 голосов
/ 06 ноября 2019

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

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

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

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

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

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

php artisan queue:listen
php artisan queue:work

Обе неудачи.

1 Ответ

0 голосов
/ 07 ноября 2019

Проверяемые вещи:

  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.

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

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

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

...