python - Python Azure服务总线没有从队列中检索消息
问题描述
我正在尝试使用 python azure 服务总线客户端不断检查队列中是否有包含进程 ID 的新消息。出于某种原因,每次我初始化 azure 服务总线客户端时,它都会运行几秒钟,然后输出以下消息: Process finished with exit code -1073741819 (0xC0000005)
. 我已经仔细检查了我的队列名称和所有内容,但我无法理解问题所在。
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())
推荐阅读
- reactjs - 无法实时获取时间前
- python - 同时安装 tensorflow 和 tensorflow-gpu 会导致错误吗?
- vb.net - OracleDataAdapter.Update 无法更新数据库
- php - 向 php sendmail 添加外部消息
- json - 抓取网络流量数据
- scala - 将通用案例类激发到结构类型
- python - 如何检查 pymodbus 版本以解码 float_32 值?
- java - 无法将 Tomcat9 安装到 Netbeans 8.0.2
- robotc - Robotc Line Follow 代码需要更快
- pepper - 我可以在服务器上使用 Qisession() 连接多个辣椒吗?