gpt4 book ai didi

Redis - 一个请求中有多个 pop 的可靠队列模式

转载 作者:可可西里 更新时间:2023-11-01 11:24:19 32 4
gpt4 key购买 nike

我已经实现了 Redis's reliable queue pattern使用 BRPOPLPUSH 因为我想避免轮询。

然而,这会导致对每个项目的网络请求。我该如何扩充它,以便工作人员 BRPOPLPUSH 一次输入多个条目?

最佳答案

同时 BRPOPLPUSH正在阻止 RPOPLSPUSH 的版本和 do not support transactions你不能处理多个条目。此外,由于 LUA 执行性质,您不能将 LUA 用于此目的:在 LUA 脚本完成之前,服务器将因新请求而被阻止。

您可以使用应用程序端逻辑来解析您需要的队列模式。伪语言

func MyBRPOPLPUSH(source, dest, maxItems = 1, timeOutTime = 0) { 
items = []
timeOut = time() + timeOutTime
while ((timeOut > 0 && time() < timeOut) || items.count < maxItems) {
item = redis.RPOPLSPUSH(source, dest)
if (item == nil) {
sleep(someTimeHere);
continue;
}
items.add(item)
}

关于Redis - 一个请求中有多个 pop 的可靠队列模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52140109/

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