Azure:结合 Web 和辅助角色:应用程序池回收

标签 azure background-process azure-web-roles azure-queues

我计划在 Azure 中进行一些浅色背景处理。我已经运行了一个 webrole,并且想使用相同的角色,这样我就不必为此使用(并付费!)专用的辅助角色。

我读过,我可以简单地重写 WebRole 类中的 Run(),该类派生自 RoleEntryPoint,并在那里实现我的“穷人的调度”。它应该定期从队列中获取消息并处理它们。

现在我的问题是:WebRole 是否在自己的进程或线程中运行,或者更重要的是,当应用程序池/应用程序域被回收时,WebRole 会发生什么?

最佳答案

如果您运行的是完整 IIS 模式(1.3 SDK 及以上版本),则 RoleEntryPoint 和 IIS 位于不同的进程中。如果您有 <Sites>,您就会知道您正在使用完整 IIS 模式。 ServiceDefinition 中的元素。

IIS 实际上在 w3wp.exe 中运行您的网站(就像您通常所期望的那样),因为它有自己的应用程序池。 RoleEntryPoint 代码由完全不同的进程启动并作为父进程,因此它们之间没有联系(例如,崩溃一个进程不会影响另一个进程)。

关于Azure:结合 Web 和辅助角色:应用程序池回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8126325/

相关文章:

JavaScript后台工作(等待所有处理完成并显示结果)

logging - Web 角色日志记录 - Nlog - 访问配置文件

azure - 使用 Application Insight (Microsoft Azure) 创建针对特定异常的警报

Azure Active Directory - 使用 Azure CLI 获取访问 token

perl - 在后台执行,但限制执行次数

java - Android 10 java 中销毁应用程序后后台服务在 20 秒后停止

azure - 如何配置 Azure Web 角色的区域设置和语言?

c# - Azure 云服务 Web 角色未启动 - 未处理的异常 - 无法找到程序集

asp.net-mvc - MVC 5 捆绑和 Azure CDN(查询字符串)

azure - 如何从 azure 服务总线清除待处理消息?