实际上,当我想让我的工作人员停止使用azure时,会调用此函数。
public override void OnStop()
{
if (messageProvider != null)
{
messageProvider.StopListening();
}
base.OnStop();
}
当我升级工作人员时,如果有任何处理消息,我会丢失该消息。你知道我怎样才能安全地阻止我的工人?
答案 0 :(得分:0)
从调用时间OnStop()
到OnStop()
退出之前,您有五分钟时间来完成当前处理(无论这意味着什么)。在您的情况下,您似乎拥有某种类型的消息提供者,并且您可以通过messageProvider.StopListening();
从消息消费中解脱出来。由于您关注当前消息的处理,您可能需要某种类型的信号来告诉您没有正在处理的消息(包括可能已被读取但未处理的消息)您拨打StopListening()
)的时间,退出OnStop()
是安全的。您如何实施信号取决于您,但您需要等待Onstop()
内的信号。
有关OnStop()
和五分钟窗口的{/ 3}}的FYI信息。