在我的本地服务器中,我可以毫无问题地使用队列,只需使用:php artisan queue:work
。
但是在我的AWS服务器中,队列未运行。
我的连接队列为database
,并且同步邮件正在正常发送。
我已在Job表中签入,可以看到我的队列,但由于未知原因,它从未运行。
是否有必要在AWS Elastic Beanstalke服务器中进行一些不同的配置?
我尝试手动使用
php artisan queue:listen
php artisan queue:work
均失败。
检查事项:
尝试指定连接名称:php artisan queue:work database
否则请确保您的EC2上的环境文件引用正确的默认QUEUE_DRIVER QUEUE_DRIVER=database
,在这种情况下
如果没有在环境文件default' => env('QUEUE_DRIVER', 'database')
中指定队列驱动程序,请检查config / queue.php以获取正确的默认设置。
在您的EC2实例上运行php artisan config:cache
以重新加载环境更改。
而且您只需要使用这两个命令之一,推荐使用php artisan queue:work
作为它缓存应用程序状态,但是每次您推送代码更改时都运行php artisan queue:restart
。
建议安装和配置主管:https://laravel.com/docs/5.8/queues#supervisor-configuration
它将在重新启动EC2或发生队列故障时负责重新启动队列工作器