"Stompest不发送确认,直到Python解释器退出"

2024-04-19 04:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我可以在此服务器上对队列中的消息数执行sudo rabbitmqctl list_queues。在

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

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

如果这是按照设计的,我如何使确认立即发生?我想也许client类的del方法中有奇怪的行为,但是nope。在

有没有什么无证的魔法在发生?在

我的“打包”代码:

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)

Tags: self服务器client消息数量settings队列queue