我有一堆 webjob 队列处理函数:
public static void ProcessSomething(
[QueueTrigger("testrequest")] TestThing thing,
TextWriter logger,
CancellationToken token)
我对优雅关闭感到困惑。因此,当您关闭 WebJob(或重新部署它)时,它允许当前处理的 WebJob 运行并完成 - 默认情况下,您的队列处理程序有 5 秒的时间来完成。你可以通过一个CancellationToken
如果您的网络作业可能需要更长时间,请进入检查取消请求的方法,如“正常关闭”部分所述本文 http://azure.microsoft.com/en-gb/documentation/articles/websites-dotnet-webjobs-sdk-storage-queues-how-to/.
好的,但奇怪的是我发现当队列处理程序在关闭期间运行时,令牌具有它的IsCancellationRequested
设置,但即使该函数在一秒钟之内完成,该队列项目也会被标记为“从未完成”,并且在 10 分钟内(该队列项目的租用时间到期后),它会返回队列。
这是设计使然吗?我可以改变这种行为吗?例如,如果您的队列处理程序正在发送电子邮件,并且它在关闭期间触发,那么它将发送电子邮件,然后被标记为从未完成,然后 10 分钟后再次发送电子邮件。
Help!
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)