Почему ремесленная очередь: работа выполняется, но не работает на экземпляре Elasti c Beanstalk - PullRequest
0 голосов
/ 24 января 2020

У меня проблема с Laravel работником очереди, использующим Elasti c Beanstalk.

Я использую Github + CircleCI + Beanstalk для развертывания моего приложения, все это работает нормально и без проблем, но работник очереди, работающий на экземпляре, не извлекает доступные задания из базы данных (все переменные .env правильно настроены, чтобы использовать базу данных для очередей и т. д.).

Я настроил ловушку, чтобы перезапустить работника очереди и запустить его снова на ловушках .ebextensions, поэтому этот процесс запускается после завершения развертывания:

...
...
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_restart_workers.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      php /var/app/current/artisan queue:restart
      php /var/app/current/artisan queue:work --queue=default --tries=2 &
...
...

Очень странная ситуация здесь что, если я введу sh в экземпляр EB (у меня есть только один), я вижу, что работник работает нормально, но этот работник не извлекает задания из базы данных , которые доступны для обработки:

Queue worker running on Beanstalk EC2 instance after a successful deploy

НО, если я убиваю рабочий процесс, а затем вручную запускаю точно такую ​​же команду, он отлично работает и вытягивает все задания:

* 102 2 *

enter image description here

Кто-нибудь может понять, почему это может происходить?

Спасибо.

...