首页 > 解决方案 > 为多个队列编写消费者的最佳方式

问题描述

这是我的情况:

我有一个简单的 Redis 包装器。它所做的是,它将一个项目(一个字典)作为输入,并通过执行 RPUSH 将其放入链表数据类型中。将新项目放入一个队列的请求实际上可能会产生许多新队列。

现在我想在不执行 LPOP 的情况下读取每个队列中最左边的项目。我需要这些项目留在队列中。所以我要做的是,我做一个 LRANGE 并从队列中获取最左边的项目。

我的问题是我不知道如何为我的队列编写消费者。我假设每个队列应该有一个消费者?这意味着我将有很多很多关于我的消费者的实例,这听起来像是一个糟糕的设计决定。

我是否应该只获取所有队列的所有键并循环遍历它们以重复处理最左侧的项目?

我应该如何为我拥有的队列写我的消费者?老实说,我被困住了,似乎没有一个标准的生产者/消费者实现能回答我的问题。我也研究了 redis 流,但我不能使用这些流,因为我无法做出决定。

标签: pythonredisqueue

解决方案


推荐阅读