Windows Azure Service Bus Client SDK支持基于任務的異步API
Microsoft 最近發布了 Windows Azure Service Bus Client SDK,它為所有的異步 API 增加了基于 System.Threading.Tasks.Task 的版本,同時還能編寫異步可讀的代碼。最新版本基于 .NET Framework 4 編譯,因此它能夠在 Visual Studio 2012 以及它之前的副本中使用。
Windows Azure Service Bus 團隊的高級軟件開發工程師 Scott Seely 在官方的 MSDN 博客文章 Task Based APIs for Service Bus 中利用 Microsoft.ServiceBus.NamespaceManager 和 Microsoft.ServiceBus.Messaging.QueueClient 示范了該 SDK 的運行方式。
在示例代碼中,他首先驗證了隊列是否存在,如果隊列不存在則創建隊列,然后再發送/接收一個來自于隊列的消息。為了讓客戶端 CPU 能夠執行其他的活動而不必等待消息的出現和返回,Scott 在演示代碼中的消息交付之前增加了 5 秒鐘的延遲。
Windows Azure Service Bus Client SDK 中的所有異常只有在任務完成時才會被拋出,同時該 SDK 還具有保持住任務和等待任務完成的能力,用戶可以通過 NuGet 或者 Visual Studio 中的包管理控制臺安裝該 SDK。
除了上面提到的特性之外,Windows Azure Service Bus Client SDK 還支持消息瀏覽,用戶還能夠通過 Microsoft.ServiceBus.Messaging.EntityStatus 枚舉掛起和恢復發送到及來自于隊列和主題的發送和接收消息,另外還可以通過 AutoDeleteOnIdle 屬性所指定的時間間隔自動刪除空閑隊列、主題或者訂閱。
最近發布的 SDK 引入了一種事件驅動或者稱為推模式的消息編程模型,該模型可做為接收循環的一個替代模型同時它還支持并行消息處理,另外該 SDK 能夠按照多種等級處理消息。