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 能够按照多种等级处理消息。