Azure Workerrole生命周期

Azure Workerrole生命周期,azure,azure-worker-roles,Azure,Azure Worker Roles,Windows Azure操作系统是否会不时自动重新启动或重置正在运行的工作人员角色?或者,如果在Run()方法中有一个循环,我是否可以相信我的工作者角色正在无限地运行?角色实例(无论是工作者还是Web)每月至少循环一次,因为来宾操作系统每月更新一次。主机操作系统每季度刷新一次,可能会导致额外的角色回收(假设主机和来宾更新分别执行) 话虽如此:通过指定要使用的来宾操作系统版本,您可以选择不自动更新到最新的来宾操作系统。您不能选择退出主机操作系统更新 通常,您不应该依赖无限运行的角色实例。您需要假

Windows Azure操作系统是否会不时自动重新启动或重置正在运行的工作人员角色?或者,如果在Run()方法中有一个循环,我是否可以相信我的工作者角色正在无限地运行?

角色实例(无论是工作者还是Web)每月至少循环一次,因为来宾操作系统每月更新一次。主机操作系统每季度刷新一次,可能会导致额外的角色回收(假设主机和来宾更新分别执行)

话虽如此:通过指定要使用的来宾操作系统版本,您可以选择不自动更新到最新的来宾操作系统。您不能选择退出主机操作系统更新

通常,您不应该依赖无限运行的角色实例。您需要假设将来会重新启动。除了主机操作系统更新之外,还会发生硬件故障


有关来宾操作系统更新和主机操作系统更新的更多信息,请参阅。

在任何情况下,您都不能依赖于主机持续运行-它有时会因更新而停止,并且可能因任何原因而崩溃。因此,您的代码应该知道并定期设置检查点,并且能够恢复

因此,是的,您可以有一个
while(true)doStuff()
循环,但您必须设计代码,使其影响全局存储的操作(SQL Azure、Blob、队列和表)始终保持该存储的一致状态。通过这种方式,如果循环被中断(由于崩溃或中止正在运行的线程的异常),代码可以在角色重新启动后恢复