3

谷歌在这方面真的让我失望了。我是 Azure 的新手,仅 .NET 中级

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

我到底需要做什么才能让这件事在本地进行?我在 SLN 中创建了 Worker 项目。我只需要知道如何启动并运行它。

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

我为教程找到的许多链接似乎都围绕着如何从 Web 角色实际初始化流程。

4

3 回答 3

4

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

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

如果您使用Windows Azure 培训工具包,您将看到一些展示如何在各种角色实例之间进行通信的实验室(一种常见的模式是使用 Windows Azure 队列)。Guestbook 动手实验室(第一个实验室)有一个很好的后台进程示例。

于 2012-04-24T13:56:06.393 回答
1

有关此的更多信息,因为我现在已经开始了..

如果您来自 Heroku 背景,那么 Azure Worker 或多或少是 Rails 中您实际使用队列执行的函数。与 Heroku 排队操作不同,Azure Worker 只是无休止地运行并不断轮询要执行的新任务……因此 Run() 函数中的模板化 sleep(10000) 。

我发现让 Web 和 Worker 相互交谈的最传统方式是通过 Azure ServiceBus 排队消息,目前尚未模拟,这意味着您需要一个正常运行的 Azure 帐户才能完成这项工作,即使您正在本地运行。你只需要上网。

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

于 2012-04-25T16:15:46.527 回答
-1

我认为您只是在启动 azure 模拟器以及您的工作人员/网络角色时遇到了麻烦?只需将 azure 配置项目设置为启动项目并运行它。它将与您的所有角色一起启动模拟器。

于 2012-04-24T15:59:59.703 回答