0

我有一个连续的 Azure WebJob,设置为“始终开启”。此 WebJob 应该处理添加到存储队列的新消息。

我想知道如果 WebJob 在处理队列触发器时由于某种原因停止工作怎么办。这样我会丢失队列中的消息,它不会进入毒队列。

我该如何解决这个问题?

4

1 回答 1

1

我想知道如果 WebJob 在处理队列触发器时由于某种原因停止工作怎么办。

首先,如果WebJob在处理消息时退出,您不必担心数据损坏。当WebJob访问要处理的消息时,它会将消息在队列中隐藏一段时间。如果你WebJob在处理消息的过程中关机了,过了这个时间,消息会再次可用,并且会被重新抓取并针对更新的代码运行。关于详细信息,你可以参考这个答案

至于您关于被通知工作正在关闭的要求。您可以使用Graceful Shutdown并听取CancellationToken您可以传递给您触发的函数并判断属性IsCancellationRequired值,然后您可以处理WebJob将关闭。是关于CancellationToken.

于 2018-11-27T06:38:18.803 回答