微软已经发布了支持 Azure Service Bus 的 WebJobs SDK 3.0 Beta 版,该版本使开发者可以利用队列和主题功能,还包括一种改进的功能发现机制,增加了取消令牌和 WebJobs 关闭通知的功能,这样可以在关机过程中自动的通知管理员。它还添加了调用 host.call() 实现主动触发的能力。host.call() 如下所示:
JobHost host = new JobHost(); host.Call(typeof(Program).GetMethod("TriggerOnQueue"), new { inputText="input" });
新推出的 JobHostConfiguration() 函数让开发者可以重写 Azure Storage and Service Bus 帐号的默认 ConnectionString 名字。微软已经提供源代码样例,您可以用来研究WebJobs SDK 的功能。
Azure WebJobs SDK 的主要目的是简化 web 站点的服务和后台任务的运行。它可以让开发者上传和运行可执行文件以作为触发或连续的 WebJobs。它还提供了一个诊断和监测机制,使开发者可以轻松地监视应用程序的性能,这将有助于处理除了 RSS 聚合、文件维护和电子邮件发送等任务之外的 CPU 密集的图像和队列处理任务。
该版本的发布带来了明显的改变,其中包、组装和命名空间名称的修改反映出了更新的命名系统。例如,Microsoft.WindowsAzure.Jobs.Host 已经更名为 Microsoft.Azure.Jobs,Microsoft.WindowsAzure.Jobs 更名为 Microsoft.Azure.Jobs.Core。
这些更新使开发者能够在启动和停止面板上进行监控。它还使开发者能够主动触发功能和绑定一个事先指定类型或者 CLR 类型如 String、TextReader 和 TextWriter,而不用于指定函数的参数。
微软还做了其他一些修改,如 QueueInput 被改成 QueueTrigger , QueueOutput 被改 Queue。类似的 BlobInput 被改成 BlobTrigger。
除了能够绑定 Azure Storage Queue 类型外,还能够访问您消息队列中消息的数量。如下代码所示:
public static void PropertyBinding( [QueueTrigger("inputqueue")] string inputText, int dequeueCount) { }
从 Microsoft Azure 官方博客帖子中得知,ASP.NET 程序经理 Pranav Rastogi 已经提供了所有新功能的详细源码。WebJobs SDK 可以从 NuGet Gallery 下载和从 NuGet Package Manager Console 里进行安装,安装命令如下:
Install -Package Microsoft.Azure.Jobs -Pre
如果您要使用微软的 Azure Service Bus,请使用下面的命令:
Install-Package Microsoft.Azure.Jobs.ServiceBus -Pre
微软还提供重定向包映射新包名称的命令,命令如下:
Update-Package Microsoft.WindowsAzure.Jobs -Pre Update-Package Microsoft.WindowsAzure.Jobs.Host –Pre
为了部署 WebJobs,开发者可以利用门户的部署页面或者可以使用 FTP、Git 以及使用 Visual Studio 扩展的 WebJobsVs 的 Web 部署。Rastogi 还提供一系列资源,帮助大家学习 WebJobs,而不是简单浏览先前更新的已存在的功能介绍。
查看英文原文: Microsoft Azure WebJobs SDK 3.0 Beta Boosts Application Development on the Cloud
感谢杨赛对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论