Azure webjob - 正常关闭队列处理功能

时间:2015-03-20 10:29:59

标签: azure azure-webjobs

我有一堆webjob队列处理函数:

public static void ProcessSomething(
            [QueueTrigger("testrequest")] TestThing thing,
            TextWriter logger,
            CancellationToken token)

我对优雅的关机感到困惑。所以 - 当您关闭webjob(或重新部署到它)时,它允许当前处理webjob运行并完成 - 默认情况下,您的Queue处理程序有5秒钟完成。您可以将CancellationToken传递给方法以检查取消请求,如果您的网络工作可能需要更长时间,请按照“优雅关机”中的说明进行操作。 this article的一部分。

好的,但奇怪的是,我发现当Queue处理程序在关机期间运行时,令牌已设置IsCancellationRequested,但即使函数在一秒钟内完成,然后该队列项被标记为"从未完成",并且在10分钟内(在该队列项的租用时间到期之后),它返回到队列中。

这是设计吗?我可以改变这种行为吗?例如,如果您的队列处理程序正在发送电子邮件,并且它在关闭期间被触发,那么它将发送电子邮件,然后标记为从未完成,然后在10分钟后再次发送电子邮件。

帮助!

0 个答案:

没有答案