gpt4 book ai didi

azure - Azure 如何中断辅助角色进行部署?

转载 作者:行者123 更新时间:2023-12-02 10:46:36 25 4
gpt4 key购买 nike

我正在将一些后台处理从 Azure Web 角色转移到辅助角色。我的工作人员需要每分钟左右执行一项任务,可能会产生任务:

while(true){
//start some tasks

Thread.Sleep(60000);
}

一旦我部署,它将开始永远运行。那么稍后,当我重新部署时,Azure 如何停止我的重新部署过程?

它会立即杀死它吗?有没有办法收到正在关闭的警告?我是否只需确保一切都是事务性的?

最佳答案

当一个角色(worker 或 web)被要求正常关闭(因为它正在缩小或因为您要求重新部署)时,OnStop调用 RoleEntryPoint 类的方法。这是具有 Run 方法的同一个类,该方法可能包含您的循环或调用包含该循环的代码。

这里需要注意一些事情:OnStop 有 5 分钟的时间来实际停止,之后进程就会被终止。如果您必须调用其他进程来异步关闭,则需要 OnStop 中的线程保持忙碌状态,直到其他进程关闭。一旦执行离开 OnStop,平台就会认为机器可以关闭。

如果您需要正常停止处理,但不需要关闭计算机,那么您可以在服务配置文件中放置一个设置,您可以更新该设置以指示应该完成或注释的工作。例如,一个 bool 值表示“ProcessQueues”。然后在 RoleEntryPoint 的 onStart 中 Hook RoleEnvironmentChanging事件。然后,您的事件处理程序会查找要发生的 RoleEnvironmentConfigurationSettingChange,然后检查 ProcessQueues bool 值。如果为 true,则启动或继续处理;如果为 false,则正常停止处理。然后,您可以更改配置来控制事物何时运行或不运行。这是处理此问题的一种选项,还有更多选项,具体取决于您需要多快停止处理等。

关于azure - Azure 如何中断辅助角色进行部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com