我有一个workerangular色进程,当它太忙时(例如,CPU负载大于80%,磁盘队列长度或其他指标),要停止处理新的请求。
如果我把angular色状态设置为“繁忙”,忙碌很久以后会被织物控制器杀死吗? 如果是的话,直到织物控制器杀死这个过程需要多长时间?
我假设这个过程仍然能够接收/发送信号给Fabric代理。
谢谢!
您可以将实例永远保持忙碌状态。 如果进程退出,唯一一次Azure将采取恢复措施。 有关其他信息,请参阅http://blogs.msdn.com/b/kwill/archive/2013/02/28/heartbeats-recovery-and-the-load-balancer.aspx 。
另外,你的工作人员在做什么? 将实例状态设置为繁忙只会将其从负载平衡器旋转中移出,以便新的传入TCP连接不会路由到该实例。 但是,如果你的工作者角色是一个典型的工作者角色,它在后台工作(例如,坐在循环中从队列中选择消息,或者在来自前端Web角色的请求上监听InternalEndpoint),那么将其设置为“繁忙”没有效果。 在这种情况下,你可以向你的代码添加逻辑来停止工作,但是看起来像什么取决于你的角色正在做什么类型的工作。