Azure功能-队列触发器在失败时消耗消息

时间:2018-07-18 16:27:14

标签: azure azure-functions

仅当我使用Azure门户编辑器时,才会发生此问题。如果我从Visual Studio上传,则不会发生此问题,但是由于以下不相关的错误,我无法从Visual Studio上传:Azure Functions - only use connection string in Application Settings in cloud for queue trigger

使用Azure门户编辑器时,如果我从C#引发异常或从JavaScript使用context.done(error),Application Insights会显示发生了错误,但是消息只是被消耗掉了。该邮件不会重试,也不会进入中毒队列。

从Visual Studio上传时,C#的相同代码可以正确重试,因此我认为这是一个配置问题。我尝试将Azure Portal Editor版本的host.json文件修改为:

{
  "queues": {
        "visibilityTimeout": "00:00:15",
        "maxDequeueCount": 5
    }
}

,但该消息仍在消耗而不是被重试。如何解决此问题,以便在使用Azure门户编辑器进行编码时可以重试消息?

注意:

在JavaScript中,context.bindingData.dequeueCount返回0

Azure Function运行时版本:1.0.11913.0 (~1)

我正在使用“消费应用计划”。

2 个答案:

答案 0 :(得分:0)

我正在使用Azure门户编辑器中的手动触发器,该触发器与在队列中创建消息的行为不同。当我将消息放入队列时,Azure函数按预期工作。

答案 1 :(得分:0)

对于本地开发,如果您的函数是异步的,请使用 Task 作为返回类型。

public async Task Run

而不是void

public async void Run