我有一个在自己的服务器上运行的rabbitmq队列。
我可以在此服务器上sudo rabbitmqctl list_queues
查看队列中的消息数。
在另一台服务器上,我收到10帧,并确认它们。然后我检查队列中的消息数量,但数字没有改变。
然后关闭python解释器并检查队列服务器上的消息数,并且数量减少了预期的数量(10)。我可以多次重复这个过程,并发生相同的行为。
如果这是按照设计,我怎样才能立即发生ack?我想也许在客户端类的 del 方法中有奇怪的行为,但是nope。
是否有一些无证魔法发生?
我的“acking”代码:
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)