同一服务器-不同网站-不能使用相同的queue属性名?

发现了一个特别奇怪的问题,求大佬一起看看

已知,我在同一个服务器放置了源码相同的三个网站aaa/bbb/ccc,他们均用到了laravel的队列,驱动是redis,来完成发送邮件的任务

为了保证服务可以在后台运行,我在宝塔上安装了Supervisor,同时设置了三个监控任务,然后配置了相应的队列,命令为

任务一 php /www/wwwroot/aaa/artisan queue:work –queue=high
任务二 php /www/wwwroot/bbb/artisan queue:work –queue=high
任务三 php /www/wwwroot/ccc/artisan queue:work –queue=high

现在奇怪的问题发生了!经过查看执行日志

理想是在网站aaa源码里分发的任务,会随机被上述的【任务一】进行接收。
但是实际情况是网站aaa源码里分发的任务会【随机】被上述的任【任务一】、【任务二】、【任务三】进行接收?

这是怎么回事呢,应该怎么解决呢?在设置任务的时候不是已经指定了运行目录吗?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

谢谢大家的回复,经测试,有效的方法是:
1.修改queue的name,每个网站不一样即可
2.修改datebase.php里面redis的database值,保证不一样就行!【特别推荐】
不可用的方法是修改APP_NAME的值

3年前 评论
讨论数量: 8

同一个redis,队列名也相同,那不就是入的队列是同一个了,跟网站目录就没啥关系了。每个网站一个队列名吧

3年前 评论
风吹枫落

.env 里的 APP_NAME 这三个项目得不一样

3年前 评论

配置下redis 的DB REDIS_DATABASE

3年前 评论

不同的项目起不同的队列名称即可

3年前 评论

队列使用的redis加一个特殊的前缀,指定db库,修改appname

3年前 评论

file

redis 默认有12个库 你每个项目 指定库,隔离开 就行

3年前 评论

@程序猿的猫 谢谢 测试可以!

3年前 评论

谢谢大家的回复,经测试,有效的方法是:
1.修改queue的name,每个网站不一样即可
2.修改datebase.php里面redis的database值,保证不一样就行!【特别推荐】
不可用的方法是修改APP_NAME的值

3年前 评论

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