簡體   English   中英

如何檢查 Azure 服務總線隊列是否為空?

[英]How to check the Azure Service Bus queue is empty?

我在我的應用程序中使用 azure 服務總線隊列,這里我的問題是,有沒有辦法檢查消息隊列是否為空,以便我可以關閉容器和 vms 以節省成本。 如果有辦法讓我知道,最好是在 python 中。

謝謝

為此,您可以使用Azure Service Bus Python SDK 您需要做的是使用get_queue方法獲取隊列的屬性,該方法將返回Queue類型的對象。 此對象通過message_count屬性公開消息總數。 請注意,此計數將包括活動消息、死信隊列消息等的計數。

這是一個示例代碼:

from azure.servicebus import ServiceBusService, Message, Queue
bus_service = ServiceBusService(
    service_namespace='namespacename',
    shared_access_key_name='RootManageSharedAccessKey',
    shared_access_key_value='accesskey')
queue = bus_service.get_queue('taskqueue1')
print queue.message_count

GitHub 上提供了適用於 Python 的 Azure 服務總線 SDK 的源代碼: https ://github.com/Azure/azure-sdk-for-python/tree/master/azure-servicebus/azure/servicebus。

您可以檢查從類azure.servicebus.ServiceBusReceiver上的peek_messages方法返回的消息的長度

with servicebus_receiver:
    messages = servicebus_receiver.peek_messages(max_message_count=1)
if len(messages) == 0:
    print('Queue empty')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM