Laravel部署报错:未配置sqs队列连接(未使用SQS)
解决Envoyer部署时SQS队列连接错误的排查步骤
1. 检查Envoyer部署钩子
重点排查钩子中的队列相关命令:
- 是否存在直接指定
sqs的queue:work命令(比如php artisan queue:work sqs),而非依赖.env配置的默认连接 - 是否有队列重启钩子(如
php artisan queue:restart),但旧的worker进程未彻底终止,仍残留SQS连接的配置
2. 清理服务器残留队列进程
登录服务器,执行命令查看是否有queue:work sqs的残留进程:
ps aux | grep queue:work
如果发现相关进程,直接终止:
pkill -f "queue:work sqs"
3. 验证Envoyer的.env同步效果
- 手动进入服务器站点
current目录,查看.env文件,确认QUEUE_CONNECTION=database确实已同步生效 - 检查部署钩子中
config:cache命令的执行顺序,确保它在.env文件同步之后运行,避免缓存旧的队列配置
4. 检查队列配置文件
打开config/queue.php,确认:
- 默认连接配置为
env('QUEUE_CONNECTION', 'sync'),没有硬编码为sqs database连接的配置项完整且正确
5. 排查任务类的硬编码连接
全局搜索项目代码,检查是否有任务类强制指定SQS连接:
// 示例:任务类硬指定连接 class DemoJob implements ShouldQueue { public $connection = 'sqs'; // 或使用 onConnection('sqs') 方法 }
内容的提问来源于stack exchange,提问作者ryanpitts1
相关产品推荐
相关产品推荐

