我有一个连续的Azure WebJob,设置为“始终打开”。 这个webjob应该处理添加到存储队列中的新消息。
我想知道,如果由于某种原因,WebJob在处理队列触发器时停止工作,该怎么办。这样我将丢失队列中的消息,并且它不会进入中毒队列。
我怎么解决这个问题?
我想知道,如果由于某种原因,网络作业已经停止工作了呢? 处理队列触发器时。
首先,如果 WebJob 会在处理消息时退出,您不必担心数据损坏。当 WebWork 访问要处理的消息,它将在队列中隐藏一定时间的消息。如果你 WebWork 关闭在处理消息的同时,消息将在该时间之后再次可用,并且它将被重新抓取并针对更新的代码运行。 answer .
WebJob
WebWork
至于你被通知的要求,工作正在关闭。你可以用 Graceful Shutdown 倾听 CancellationToken 您可以传递给您触发的函数并判断属性 IsCancellationRequired 值,然后您可以处理 WebWork 会关机的。 Here 示例代码是关于 取消令牌 .
CancellationToken
IsCancellationRequired
取消令牌