gpt4 book ai didi

redis - Redis 上的 Kombu 丢弃消息

转载 作者:可可西里 更新时间:2023-11-01 11:34:21 43 4
gpt4 key购买 nike

我正在使用 Redis 上的 Kombu 组合生产者/消费者设置,但我遇到了问题。如果我启动一个消费者,然后使用 range(10000) 启动生产者,我可以确认生产者已将所有 10k 项目排队,但并非所有 10k 项目都被消费者接收。 Kombu 或 Redis 是否有我不知道的限制?它似乎与 range(9000) 一起正常工作,并且所有的键/确认都已正确耗尽。

class ProduceConsume(object):
def __init__(self, exchange_name):
exchange = Exchange(exchange_name, type='fanout', durable=False)
self.queue_name = 'test_queue'
self.queue = Queue(self.queue_name, exchange)

def producer(self, inp):
with BrokerConnection("redis://localhost:6379/15") as conn:
with conn.SimpleQueue(self.queue) as queue:
for payload in inp:
queue.put(str(payload).zfill(5))
print(str(payload).zfill(5))

def consumer(self):
with BrokerConnection("redis://localhost:6379/15") as conn:
with conn.SimpleQueue(self.queue) as queue:
while True:
message = queue.get()
message.ack()
print(message.payload)

最佳答案

不是一个完整的答案,但是使用 RabbitMQ 而不是 Redis 没有消息丢失的问题。可能是由于非直接交流的问题?随时提交更明智的答案,但希望这可以帮助别人。

更新:这是 Kombu 中的一个错误;见https://github.com/celery/kombu/issues/593

关于redis - Redis 上的 Kombu 丢弃消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37305194/

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