redis-queue没队列数据的时候一直在遍历

深蓝

问题描述

redis-queue在没有数据的时候一直在使用BRPOP进行阻塞弹出,但是这超时时间设置的是1秒,所以就一直在遍历队列有没有数据,如果只是一个简单的队列,每天只需要1个小时时间去运行队列消费,那其他没运行的时间他也一直在遍历,不是就一直在无用地消耗服务器资源吗?

这种情况有没有什么办法避免。

134 2 0
2个回答

nitron

因为Redis-queue不知道redis里有没有数据,所以需要不停POP

数据是从Redis端pull到PHP,而不是从Redis端push到PHP

  • 深蓝 12天前

    懂了

  • 深蓝 12天前

    但是设置一个手动介入的参数开关还是可行的吧。如果知道长时间没有数据,没必要去开启这个遍历。目前发现把queue/redis/ 消费类文件移出可自动暂停,但是这样太不友好了。

  • nitron 12天前

    又不耗费多少资源,折腾这个收益巨小

powerbowen

楼上正解,不想这么玩可以入库然后走定时脚本

  • 深蓝 12天前

    场景不同,我尝试下定时脚本。

🔝