首页 文章

在Azure中生成并执行Worker进程

提问于
浏览
3

谷歌真的让我失败了 . 我是Azure新手,只是.NET的中间人

我有一个Azure解决方案,我已经在一个运行良好的Web角色中编写了一些代码 . 我现在想做的是将一些代码移到Azure Worker中,它将由Web角色中的控制器函数初始化

我到底需要做些什么来实现本地化?我在SLN中创建了Worker项目 . 我只需要知道如何启动并运行它 .

我认为我的问题的部分原因是我假设这些 Worker 的行为像Heroku Worker ......是这样的吗?因为我需要的是像队列系统(在一个大队列中的一堆“工作任务”) .

我在教程中找到的很多链接似乎都是关于如何从Web角色实际初始化进程的 .

3 回答

  • 1

    Windows Azure中的工作人员不是任务;他们是整个虚拟机 . 为了让您的生活更轻松,请记住这个小细节:Web角色实例是运行IIS的Windows Server 2008,而工作者角色是相同的,但禁用了IIS .

    将该辅助角色添加到项目中时,实际上现在有一组新的虚拟机在运行(至少有一个,具体取决于您设置的实例数) . 这些VM有自己的OnStart()和Run()方法,您可以将代码放入,以用于引导目的 .

    如果你 grab Windows Azure training kit,那么'll see a few labs that show how to communicate between your various role instances (a common pattern being the use of Windows Azure queues). There'就是使用Guestbook动手实验室(第一个实验室)的后台流程的一个很好的例子 .

  • 4

    关于这方面的更多信息,因为我现在已经开始了...

    如果您来自Heroku背景,那么Azure Worker或多或少是Rails中您实际使用队列执行的功能 . 与Heroku排队操作不同,Azure Worker只是无休止地运行并继续轮询新事物......因此Run()函数中的模板化睡眠(10000) .

    我发现让Web和Worker互相交谈的最常规方式是通过Azure ServiceBus的队列消息,目前尚未模拟,这意味着您需要一个功能正常的Azure帐户才能使其正常工作,即使您工作也会有效在本地运行 . 你只需要上网 .

    ServiceBus消息可以将整个对象传递给Worker(只要Worker proj中有正确的依赖项),这样就很好了 .

  • -1

    我认为你在启动azure仿真器和你的工作者/网络角色时遇到了麻烦吗?只需将azure配置项目设置为启动项目并运行即可 . 它将启动模拟器以及所有角色 .

相关问题