2012-04-24 56 views
3

谷歌在这方面真的让我失望了。我是新来的Azure和我只在.NET在Azure中产卵并执行一个Worker过程

中间我有一个Azure的解决方案去,我已经写在运行大的Web角色一些代码。我想现在要做的就是将一些这个代码到Azure的工人,这将是一个控制器功能在Web角色

究竟是什么,我需要做的就是这个地方去进行初始化?我在SLN中创建了Worker项目。我只需要知道如何启动并运行它。

我想我的问题的一部分,是我假定这些工人的行为像Heroku的工人......是这样的话?因为我需要的是类似队列系统(在一个大队列中的一群“工人任务”)。

很多我找到的教程的链接似乎挖掘围绕如何真正从一个Web角色初始化过程的舞蹈。

回答

4

Windows Azure中的工作人员不是任务;他们是整个虚拟机。为了让您的生活更轻松,请记住这个小小的细节:Web角色实例是运行IIS的Windows Server 2008,并且Worker角色与IIS禁用时是一样的。

当您添加了辅助角色到你的项目,你实际上现在有一组新的虚拟机器上运行(至少一个,取决于实例数设置)。这些虚拟机拥有自己的OnStart()和Run()方法,您可以将代码放入,以便进行引导。

如果你抓住Windows Azure training kit,你会看到几个实验室展示了如何在各种角色实例之间进行通信(一种常见模式是使用Windows Azure队列)。 Guestbook动手实验室(第一个实验室)有一个很好的后台流程示例。

-1

我想你只是无法启动天青模拟器以及你的工人/网络角色?只需将azure配置项目设置为启动项目并运行即可。它将启动模拟器以及您的所有角色。在这个

+0

因此,一个工作者角色几乎与一个Windows服务相同。如上所述,在本地启动它。你的问题标题+“我只需要知道如何启动并运行它。”可能有点误导。如果您更关心设置服务来使用作业,那么您可能希望使用存储客户端队列或类似的东西来进行租用和执行作业。尽管如此,你还没有真正提供关于你需求的细节。不知道你想从哪里种下工作。 – 2012-04-24 16:42:40

1

更多信息,因为我已经得到了,现在去..

如果你从Heroku的背景的,那么Azure的工人或多或少Rails中的功能,你实际上会用队列执行。与Heroku排队的操作不同,Azure Worker只是无休止地运行,并且不断轮询新的内容......因此Run()函数中的模板化睡眠(10000)。

我发现使Web和Worker互相通信的最常规方式是通过Azure ServiceBus队列消息,该消息当前不被模拟,这意味着您需要一个正常运行的Azure帐户才能完成此项工作,即使你在本地运行也能工作。你只需要上网。

甲ServiceBus消息可以传递整个对象转移到工(只要工人PROJ中有正确的依赖关系),所以这是种不错的。

+0

如果您想使用模拟的队列,则可以使用Azure存储队列。 – knightpfhor 2012-04-26 02:57:24