我有一個應用程序,它在調用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 關注
- 209 瀏覽
添加回答
舉報
0/150
提交
取消