我有一个应用程序,它在调用lpop. 使用该top命令,我可以看到 redis 使用了 64% 的 CPU,而我的应用程序使用了 101%。我正在使用 redis 创建一个队列和工作人员。我的工人处于无限循环中,打电话lpop并等待下一份工作的到来。为此,我使用了机械包。没有针对此问题在这里,哪里出了问题,据说是从lpop。但是,由于评论令人困惑,除了一个不会阻止而另一个会阻止这一事实之外,我对LPOP和之间的区别BLPOP一无所知。
1 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
使用定时 BLPOP 而不是 LPOP 来避免大量 CPU 使用
7 天前提交
提交 54315dd9fe56a13b8aba2d2a8868fc48dfbb5795
machinery/v1/brokers/redis.go
- itemBytes, err := conn.Do("LPOP", redisBroker.config.DefaultQueue)
+ itemBytes, err := conn.Do("BLPOP", redisBroker.config.DefaultQueue, "1")
使用machinery/v1/brokers/redis.go 更改LPOP为的最新版本BLPOP。
- 1 回答
- 0 关注
- 181 浏览
添加回答
举报
0/150
提交
取消