我想用Redis构建一个简单的队列系统,而不依赖于pub / sub。所以我的(Nodejs)消费者会在列表上调用BRPOP
,没有什么非常原始的。
问题是,是否完全和完全依赖于无超时BRPOP
的阻塞行为 - 意味着它将无限期地阻止连接,直到事件被推送到列表 - 或者调用{{1在一个循环中,短暂的超时。
两种解决方案的优点和缺点是什么?例如,长时间阻塞连接/进程可能是个问题吗?
答案 0 :(得分:0)
我最终使用的解决方案是为每个工作者保持两个客户端:一个用于阻塞功能brpoplpush,另一个用于进行工作人员可能需要的非阻塞redis调用。