以下是检查AMQP消息队列状态并记录延迟的示例代码:
import time
import pika
# establish connection
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# declare queue
channel.queue_declare(queue='my_queue', passive=True)
# check queue status and measure latency
start_time = time.time()
method_frame, properties, body = channel.basic_get(queue='my_queue', auto_ack=True)
end_time = time.time()
if method_frame:
latency = end_time - start_time
print(f'Latency: {latency}')
else:
print('No message in queue')
# close connection
connection.close()
在此示例中,我们使用pika库建立一个AMQP连接并声明了一个名为“my_queue”的队列。然后我们调用 channel.basic_get() 方法来从队列中获取一条消息并记录获取的时间。如果该队列没有消息,则输出"No message in queue"。
请注意,可以通过将auto_ack参数设置为False来启用消费确认,这样可以更精确地控制哪些消息已经被处理。