你可以处理 停止 event延迟实例关闭(在正常关闭模式下)。在崩溃的情况下,你无法真正阻止关机......
这是缓解的建议。假设你的任务是队列驱动的。让我们假装你的消息看起来像 PROCESSWIDGET|123 。
PROCESSWIDGET|123
您在工作器实例中读取队列消息并开始处理。您可以在整个过程中修改队列消息,并记录您的进度。因此,在这个虚构的例子中,假设有4个步骤来完成长达一小时的任务,每个步骤需要15分钟。每个步骤完成后,您可以更新消息,附加检查点状态。在完成第一个任务后,您将更新消息,现在它看起来像 PROCESSWIDGET|123|STEP2 。
PROCESSWIDGET|123|STEP2
现在......出现问题,VM实例因某种原因而死亡。队列消息最终再次可见,另一个工作器实例读取它,并看到附加下一步要执行的消息。假设您已将中间文件存储在Blob存储(或其他一些持久存储)中,您可以从中断的地方继续,而不是从头开始重新处理。
看到 这个MSDN页面 详情 UpdateMessage() 方法。
UpdateMessage()