Laravel 8队列正常运行但每秒生成未配置连接错误日志问题
问题描述
Laravel 8队列功能可正常运行,但storage/laravel.log日志文件每秒都会生成如下错误:
未配置 [database--queue=default] 队列连接。{"exception":"[object](InvalidArgumentException(code: 0): 未配置 [database--queue=default] 队列连接"}
原因分析
错误中的连接名database--queue=default是格式错误的产物,通常是队列worker启动命令、配置文件或任务调度中错误拼接了连接类型与队列参数导致的。
解决方案
检查队列Worker启动命令
启动database队列的正确命令需保证连接名与参数间有空格:php artisan queue:work database --queue=default若使用supervisor管理进程,务必确认配置文件中的命令格式正确,避免出现
database--queue=default这类错误写法。验证队列配置文件
打开config/queue.php,确认connections数组内存在正确的database连接配置:'database' => [ 'driver' => 'database', 'table' => 'jobs', 'queue' => 'default', 'retry_after' => 90, ],同时检查
default项是否指向正确的连接名,比如:'default' => env('QUEUE_CONNECTION', 'database'),并确认
.env文件中QUEUE_CONNECTION的值为database。检查任务类的连接指定
若自定义任务类中设置了$connection属性,确认其值为正确的连接名(如database),而非错误的database--queue=default。核对队列调度命令
若使用Laravel Scheduler,在app/Console/Kernel.php的schedule方法中,确保队列调度命令格式正确:$schedule->command('queue:work database --queue=default --stop-when-empty')->everyMinute();
内容的提问来源于stack exchange,提问作者Suman Ahmed

