Laravel执行queue:listen报错:Undefined array key 'queue'
问题解决:Laravel执行
php artisan queue:listen报"Undefined array key 'queue'"错误 以下是针对性的排查和解决步骤:
检查队列核心配置
打开config/queue.php,找到Redis驱动的配置块,确保存在queue字段并设置了合法的队列名称(比如default):'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', // 此字段必须存在 'retry_after' => 90, 'block_for' => null, ],验证环境变量配置
确认.env文件中队列驱动和Redis连接参数正确:QUEUE_CONNECTION=redis REDIS_HOST=你的Redis服务地址(容器内通常是服务名,比如redis) REDIS_PASSWORD=你的Redis密码(无密码则留空) REDIS_PORT=6379清除配置缓存
容器环境容易残留旧配置缓存,执行以下命令刷新:php artisan config:clear php artisan cache:clear检查Horizon配置(若使用Horizon)
报错来自Horizon的Redis连接器,打开config/horizon.php,确保环境配置中的队列参数正确:'environments' => [ 'production' => [ 'supervisor-1' => [ 'connection' => 'redis', 'queue' => ['default'], // 需明确指定队列列表 'balance' => 'auto', 'processes' => 10, 'tries' => 3, ], ], ],测试Redis连通性
在容器内执行命令验证Redis服务是否正常可达:php artisan tinker > Redis::ping(); // 返回true则表示连接正常
错误原因说明
该错误是因为Laravel(或Horizon)尝试读取Redis队列配置中的queue键但未找到,通常是配置文件缺失该字段、旧配置未刷新,或是Horizon的环境队列配置未正确设置导致。
内容的提问来源于stack exchange,提问作者Alireza Amrollahi
相关产品推荐
相关产品推荐

