gpt4 book ai didi

go - 为什么 lpop 会增加 Redis CPU 使用率?

转载 作者:IT王子 更新时间:2023-10-29 01:55:06 28 4
gpt4 key购买 nike

我有一个应用程序在调用 lpop 时不断循环。使用 top 命令,我可以看到 Redis 使用了 64% 的 CPU,而我的应用程序使用了 101%。

我正在使用 Redis 创建队列和工作器。我的工作人员处于无限循环中,调用 lpop 并等待下一个作业进来。

为此,我使用了 machinery包裹。这个 here 有问题,据说问题来自 lpop。然而,由于评论令人困惑,我不知道 LPOPBLPOP 之间的区别,除了一个不阻塞和另一个是。

最佳答案

Using timed BLPOP instead of LPOP to avoid massive cpu usage

committed 7 days ago

commit 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.goLPOP 更改为 BLPOP

引用:Redis commands: BLPOP

关于go - 为什么 lpop 会增加 Redis CPU 使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35113331/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com