我使用 Azure Cloud Worker Role 处理来自队列的传入任务。每个任务的处理可能需要几个小时,每个工作角色可以同时处理多达 N 个任务。基本上,它正在工作。
现在,您可以在 documentation 中读到,有时可以关闭辅助角色(用于软件更新、操作系统升级……)。基本上,没问题。但是, 这个计划关闭不能强制停止已经运行任务的工作角色 。
预期的:
当环境调用 OnStop() 方法时:
实际的:
OnStop() 方法最多可以阻塞 5 分钟 。我不能保证我会在 5 分钟内完成处理任务 - 所以,这是问题......我的任务在处理过程中被终止,这对我的软件来说变得不稳定。
我如何才能避免这 5 分钟的限制?欢迎任何提示。
最佳答案
不幸的是,你不能。这是 Azure 方面强加的硬性限制。你需要解决这个问题。
我能想到两种可能的解决方案,它们都需要您重新考虑当前的架构:
关于c# - Azure 云服务 OnStop,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33484445/