【问题标题】:Azure WebJob with Queue triggered fired multiple times多次触发带有队列的 Azure WebJob
【发布时间】:2018-09-10 13:18:44
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    处理某些消息时可能发生异常。如果一条消息未能成功处理,它将被重试。每条消息都有一个 dequeueCount。如果没有记忆,队列触发器的默认值是五次尝试。

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

    【讨论】:

    • 没有记录异常。此 WebJob 用于从队列中挑选消息并发送电子邮件。如果有任何例外,邮件将不会被发送。但是这里的邮件功能运行良好,一些用户由于多次触发而收到重复的邮件。我已经在本地和 azure 门户中进行了调试。另一个奇怪的事情是,即使是少量的物品,这个问题也会出现。 3. 但该场景无法在本地机器上重现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2016-02-29
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    相关资源
    最近更新 更多