触发队列的Azure WebJob多次触发

时间:2018-09-10 13:18:44

标签: azure task-parallel-library azure-webjobs azure-storage-queues

我有一个控制台应用程序,可将许多消息并行推送到Azure存储队列。有一个连续触发的Azure WebJob,每当将一条消息添加到该队列中时就会调用该WebJob。在一种情况下,我在队列中添加了300个项目,在三个不同的线程中各添加了100个项目。由于队列中只有 300 条消息,因此理想情况下,WebJob应该仅被调用 300 次。但是我可以看到它已经被调用了308次。可能是什么原因呢? 还要注意,额外的触发计数是不可预测的。有时可能是306或310等。

我尝试通过删除Parallel.Invoke来顺序发布消息,以检查其是否与并行处理有关,但是问题仍然存在。我正在通过在本地运行WebJob项目来调试问题。

1 个答案:

答案 0 :(得分:0)

在处理某些消息期间可能发生异常。如果邮件无法成功处理,将重试该邮件。每个消息都有一个dequeueCount。如果有内存,则队列触发器的默认值为五次尝试。

尝试在本地运行并查看输出窗口。或者,您可以检查实时Azure实例上的Web作业日志,以查看是否重试了一条消息。