Windows Azure - 后台/计划任务?

时间:2013-06-20 06:56:48

标签: c# asp.net-mvc asp.net-mvc-4 azure azure-worker-roles

以前,在Azure中有工作者角色,现在我看不到 - 所以我应该在后台创建虚拟机并在那里创建Windows服务或者创建Windows服务,以便用于后台/计划任务,例如维护,电子邮件发送等有更简单的方法吗?

4 个答案:

答案 0 :(得分:3)

有这个新的调度程序http://www.windowsazure.com/en-us/services/scheduler/

  

Windows Azure Scheduler允许您在任何计划中调用操作(如调用HTTP / S端点或将消息发布到存储队列)。使用Scheduler,您可以在云中创建可靠地调用Windows Azure内部和外部服务的作业,并按需定期重复运行这些作业,或者为将来的日期指定它们。此服务目前作为独立API提供。

答案 1 :(得分:2)

此常见问题解答的最终(当前)指南是Guarav的Building a Simple Task Scheduler in Windows Azure - 事实证明,这并不是那么简单,它并不适合Azure网站(而是角色)。

最简单的解决方案是使用类似MVC Web API的东西创建RESTful(ish)路由(控制器等),并获得一个cron作业调度程序来启动它们。最近我一直在使用Aditi cloud scheduler为你提供这些工作,并且在市场上是免费的(每月5000个电话)。

答案 2 :(得分:2)

如果您使用的是Azure网站(并且它们非常好),则可以使用新的WebJobs功能,您可以按时间戳戳http(s)端点或运行脚本。

答案 3 :(得分:1)

Web和工作者角色是Cloud Service模型的一部分,它们都存在并且没有任何地方。

正如您对问题的评论中所述,门户网站不会促进这些角色的构建;这是您通过Visual Studio,Eclipse(工作者角色)或PowerShell创建的。

并且您不需要辅助角色来执行后台任务。正如许多其他答案中所提到的,工作者和Web角色是Windows Server虚拟机的模板。由于VM是无状态的,并且每次都从同一基线重新启动,因此模板会对启动时安装的内容进行整形。

您可以将后台任务作为Web角色或辅助角色中的线程运行。因此,如果您愿意,可以在与您的网站相同的Web角色实例中运行所有后台任务。

我建议您完成Azure Training Kit中的一些基本示例,这些示例将介绍如何从Visual Studio创建不同的角色。