in sample/scenarios/queue_multi_thread.py [0:0]
def run(self):
no_message_count = 0
print("%sReceive And Delete Message From Queue%s\nQueueName: %s\nWaitSeconds: %s\n"
% (10 * "=", 10 * "=", self.queue_name, self.wait_seconds))
while True:
if no_message_count > 50:
print("Long time without receiving messages, exiting.")
sys.exit(0)
# 读取消息
try:
# receive_message 返回字节串,receive_message_with_str_body 返回字符串
# recv_msg = my_queue.receive_message(wait_seconds)
recv_msg = self.queue.receive_message_with_str_body(self.wait_seconds)
print("Receive Message Succeed! ReceiptHandle: %s MessageBody: %s MessageID: %s"
% (recv_msg.receipt_handle, recv_msg.message_body, recv_msg.message_id))
except Exception as e:
if hasattr(e, 'type'):
if e.type == u"QueueNotExist":
print("Queue not exist, please create queue before receive message.")
sys.exit(0)
elif e.type == u"MessageNotExist":
print("Queue is empty!")
no_message_count += 1
continue
print("Receive Message Fail! Exception: %s\n" % e)
continue
# 删除消息
try:
self.queue.delete_message(recv_msg.receipt_handle)
print("Delete Message Succeed! ReceiptHandle: %s" % recv_msg.receipt_handle)
except Exception as e:
print("Delete Message Fail! Exception: %s\n" % e)