我有一个连续的Azure WebJob,它设置为“始终在线”。 该WebJob应该可以处理添加到存储队列中的新消息。
我想知道WebJob在处理队列触发器时是否由于某种原因停止工作。这样,我将从队列中丢失消息,并且不会进入中毒队列。
我该如何解决?
答案 0 :(得分:1)
我想知道WebJob是否由于某种原因停止工作 在处理队列触发器时。
首先,如果WebJob
在处理消息时退出,则不必担心数据损坏。 WebJob
访问要处理的消息时,它将在队列中隐藏消息一定时间。如果您的WebJob
在处理邮件时关闭,则该邮件将在此时间后再次显示,并且将根据更新后的代码重新进行抓取和运行。有关详细信息,您可以参考此{{3 }}。
关于您收到通知的要求,该作业正在关闭。您可以使用answer并听CancellationToken
,然后将其传递给触发函数并判断属性IsCancellationRequired
的值,然后可以处理WebJob
将关闭的情况。 Graceful Shutdown是关于CancellationToken
的示例代码。