0

我有一个在自己的服务器上运行的 rabbitmq 队列。

我可以sudo rabbitmqctl list_queues在这台服务器上做队列中的消息数量。

在另一台服务器上,我收到 10 帧,并确认它们。然后我检查队列中的消息数量,并且数量没有改变。

然后我关闭 python 解释器并检查队列服务器上的消息数量,该数量减少了预期的数量(10)。我可以多次重复此过程,并且会发生相同的行为。

如果这是按照设计,我怎样才能让 ack 立即发生?我认为客户端类的del方法中可能存在奇怪的行为,但是没有

是否发生了一些无证的魔术?

我的“确认”代码:

client = Stomp(StompConfig(uri=settings.QUEUE_SERVER))
client.connect()
client.subscribe(
    settings.INBOUND_QUEUE_NAME,
    {StompSpec.ACK_HEADER: StompSpec.ACK_CLIENT_INDIVIDUAL}
)

for each in range(10):
    frame = self.client.receiveFrame()
    self.client.ack(frame)
4

0 回答 0