Laravel 队列与 AWS Elastic Beanstalk

Thi*_*nte 2 amazon-web-services laravel amazon-elastic-beanstalk laravel-queue

在我的本地服务器中,我可以毫无问题地使用队列,只需使用: php artisan queue:work

但在我的 AWS 服务器中,队列没有运行。

我的连接队列是database并且同步邮件发送没有问题。

我检查了作业表,可以看到我的队列,但由于未知原因它从未运行。

是否需要在AWS Elastic Beanstalke服务器中进行一些不同的配置?

我尝试过手动使用

php artisan queue:listen
php artisan queue:work
Run Code Online (Sandbox Code Playgroud)

两者都失败了。

Man*_*eet 5

需要检查的事项:

  1. 尝试指定连接名称:php artisan queue:work database

  2. QUEUE_DRIVER=database否则,请确保 EC2 上的 env 文件在这种情况下引用正确的默认 QUEUE_DRIVER

  3. 如果您没有在 env 文件中指定队列驱动程序,请检查 config/queue.php 是否有正确的默认设置default' => env('QUEUE_DRIVER', 'database')

  4. 在您的 EC2 实例上运行php artisan config:cache以重新加载环境更改。

您只需使用这 2 个命令之一,建议使用它,php artisan queue:work因为它会缓存应用程序状态,但php artisan queue:restart每次推送代码更改时都会运行。

建议安装和配置supervisor:https://laravel.com/docs/5.8/queues#supervisor-configuration

它将负责在 EC2 重新启动或队列故障时重新启动队列工作线程