具有队列触发的 Azure WebJob 多次触发

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

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

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

最佳答案

部分消息处理过程中可能出现异常。如果消息未能成功处理,则会重试。每条消息都有一个 dequeueCount。如果内存充足,队列触发器的默认尝试次数是五次。

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

关于具有队列触发的 Azure WebJob 多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52258713/

相关文章:

azure - 如何手动创建部署到 Azure 静态 Web 应用(预览版)所需的 Azure API token ?

c# - 是否可以从存储过程访问 Azure Blob?

c# - 单机低延迟、高吞吐量数据传输的最佳并发框架

c# - 为什么 AsyncUnaryCall<T> 和其他人不扩展 Task<T>?

python - 创建 blob 时如何在 azure 中触发事件触发函数

azure - 使用多个复制事件输出对象在 Azure 数据工厂中创建 JSON 数组

c# - 关于 Async 和 Await 的工作原理 c#

azure - 在 azure webjob 中引用另一个项目时出现黄色警告

azure - .NET-Core 作为 Azure AppService 和本地的常见功能即服务功能

Azure 停止触发的 Web 作业