Python 如何判断 Azure Queue Storage 是否存在并实现不存在即创建
你有两种可行的实现方案:
升级SDK到v12及以上版本直接使用
exists()方法
你查不到对应方法大概率是使用的azure-storage-queue SDK版本低于v12,v12及以上版本的QueueClient原生支持exists()方法,和你现有写法的逻辑完全匹配。你可以执行以下命令升级SDK:pip install --upgrade azure-storage-queue
升级后你贴出的原有代码无需修改即可正常运行。更推荐的简化写法,省去存在性判断步骤
Azure SDK的create_queue()方法支持传入exists_ok参数,将该参数设为True时,如果目标队列已经存在,SDK不会抛出异常,会直接跳过创建逻辑,你完全可以去掉if判断的分支,代码可以简化为:
def send_to_queue(CONN_STR, queue_name, mess): service_client = QueueServiceClient.from_connection_string(conn_str=CONN_STR) queue = service_client.get_queue_client(queue_name) # 队列不存在则创建,已存在则直接跳过,不会报错 queue.create_queue(exists_ok=True) queue.send_message(mess)
这种写法不需要额外做存在性校验,代码更简洁,也不会因为并发操作出现校验和创建之间的时序问题。
内容的提问来源于stack exchange,提问作者patryk_ostrowski
相关产品推荐
相关产品推荐

