多条服务器是使用队列任务不能执行的问题?

队列处理
file

分发队列
file

在服务器上运行
php artisan queue:work

在本地和预发布的测试环境测试都没有问题,部署到生产环境后队列任务没有被执行。

生产环境中 我们在只在其中一台服务中运行了
php artisan queue:work

查看redis 中是有队列任务在里面的,只是没有执行。部署代码后有使用 restart 重启队列任务。
没有错误日志。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

@TimJuly @leochien 问题已经解决,腾讯云的reids 服务禁用了 eval 函数 不能运行LUA 脚本。感谢你们的耐心回答。

6年前 评论
讨论数量: 12

@madaima 可以理解為你們有多台 Server,共用一個 Redis 隊列嗎

6年前 评论

@madaima 如果是使用 supervisord 之類的工具,我可能會覺得是沒有 worker 在執行造成的
但你們是直接用 php artisan queue:work 的指令,隊列不會執行就真的滿奇怪
有考慮使用 Horizon,圖形化的觀察看看 Redis 隊列有沒有出現異狀嗎

6年前 评论
TimJuly

先确认连到了正确的 Redis 上,以及队列配置的是 Redis。

6年前 评论

@leochien 是的 我们已经排查到使用 database 驱动是没有问题的,redis 不行

6年前 评论

@TimJuly 我们分发任务后,进reids 是可以看见我们分发进去的任务的。队列使用redis 需要单独配置吗?不是使用的系统默认连接的Redis 吗

6年前 评论
TimJuly

需要配置env文件里的QUEUE_DRIVER,配置完了要刷新配置文件缓存并重启队列

6年前 评论

@TimJuly 我就是在env里面配置了QUEUE_DRIVER = redis ,我认为不是这个问题。
我把这个QUEUE_DRIVER 切换成database ,队列可以正常运行

6年前 评论
TimJuly

仔细测测,九成九是配置的问题。

6年前 评论

@TimJuly 生产环境用的是腾讯云的Redis 服务,估计可能是因为这个问题。

6年前 评论

@TimJuly @leochien 问题已经解决,腾讯云的reids 服务禁用了 eval 函数 不能运行LUA 脚本。感谢你们的耐心回答。

6年前 评论

@madaima 解決就好,沒幫上什麼忙 ?

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!