Python Azure服务总线未从队列检索消息
我正在尝试使用python azure service bus client不断检查队列中是否有包含进程Id的新消息。出于某种原因,每次我初始化azure service bus client时,它都会运行几秒钟,然后输出以下消息:进程已完成,退出代码为-1073741819(0xC0000005) 。我仔细检查了我的队列名称和所有内容,但我不明白问题出在哪里Python Azure服务总线未从队列检索消息,python,azure,azureservicebus,Python,Azure,Azureservicebus,我正在尝试使用python azure service bus client不断检查队列中是否有包含进程Id的新消息。出于某种原因,每次我初始化azure service bus client时,它都会运行几秒钟,然后输出以下消息:进程已完成,退出代码为-1073741819(0xC0000005) 。我仔细检查了我的队列名称和所有内容,但我不明白问题出在哪里 with servicebus_client: receiver = servicebus_client.get_queue_r
with servicebus_client:
receiver = servicebus_client.get_queue_receiver( queue_name=CALC_REQUEST_QUEUE)
print( "state 1" )
with receiver:
print("state")
for msg in receiver:
calc_request = json.loads( str( msg ) )
processing_identifier = calc_request.get( 'processingIdentifier', None )
print( "Received: " + str( processing_identifier ) )
calc_config = fetch_calc_configuration( processing_identifier )
calc_response = invoke_capsule_summary_processing(calc_config)
如果您只是想连续从某个队列中提取新消息,请尝试以下操作:
import asyncio
from asyncio.tasks import sleep
from azure.servicebus.aio import ServiceBusClient
CONNECTION_STR = ''
QUEUE_NAME = ''
async def main():
servicebus_client = ServiceBusClient.from_connection_string(conn_str=CONNECTION_STR)
async with servicebus_client:
receiver = servicebus_client.get_queue_receiver(queue_name=QUEUE_NAME)
async with receiver:
received_msgs = await receiver.receive_messages(max_message_count=10, max_wait_time=5)
for msg in received_msgs:
print(str(msg))
await receiver.complete_message(msg)
loop = asyncio.get_event_loop()
while True :
#each 10 seconds to pull messages from queue.
sleep(10)
print('pull messages...')
loop.run_until_complete(main())
结果:
我想知道,如果您只是接收并打印信息,会怎么样?这样我们就可以确定这是与接收部件有关的问题,还是与后续处理部件有关的问题。@AdamLing我同意你的建议。我试着只接收并打印信息,但没有成功。在获得打印消息的机会之前,代码会出错。我认为这是接收消息的问题。我想知道是否是消息的内容触发了错误——您发送的消息的内容是什么,它们是通过同一个SDK发送的?请随时在中打开问题以添加更多详细信息。