从vm创建azure工作规则

时间:2014-01-10 13:03:41

标签: c# azure

是否可以从在azure windows vm上运行的c#应用程序动态启动Worker Role Instances

在azure中我有一台中型虚拟机,上面有一个ac#console应用程序,每天晚上11点自动运行,它会一直处理数据直到早上7点左右,我的数据越来越大,因此需要更多时间处理完毕,我需要在凌晨5点之前完成所有数据的处理。

是否可以使用Worker规则来运行应用程序的实例并将其中的一部分数据传递给它?

请注意,我的进程会向外部网站发出http请求,并且已处理的数据会写入mongodb。

我不知道从哪里开始,我不确定使用工作规则是否比创建几个vms更好。

一般来说,如何使用azure上提供的工具解决这个问题?

2 个答案:

答案 0 :(得分:3)

  

是否可以从c#动态启动辅助角色实例   应用程序在azure windows vm上运行?

绝对是的。为此,您需要使用Service Management API。您可以自己编写代码来使用此API,也可以使用Windows Azure Management Library来执行此操作,您可以从Nuget安装。要了解有关此API的更多信息,您可能会发现此博文有用:http://www.bradygaster.com/post/getting-started-with-the-windows-azure-management-libraries

一般来说,工作者角色等同于Windows服务,因为两者都用于执行后台任务。由于您是通过VM执行后台任务,因此我无法看到为什么您不能通过Worker Role实例执行相同操作的原因。我的建议是通过在线提供的教程或Windows Azure Platform Training Kit来熟悉工作者角色概念以及如何在项目中使用它们。

答案 1 :(得分:1)

对于您的特定情况,您可能需要查看现有的自动缩放规则;在辅助角色的配置中,在Azure管理控制台中,您可以指定,例如,您希望每天在特定时间之间运行至少两名工作人员。 Service Management API为您提供了更多控制,但自动缩放可以快速轻松地开始。

顺便提一下,如果您的工作人员必须完成的工作可以分为原子块,那么您可能希望使用存储队列将所有任务写入,然后让工作人员角色从该队列中拉出任务。然后,您可以配置自动缩放以监视队列的长度,并根据需要启动和停止工作程序。