Trying to use retryOptions for service bus trigger on Azure Functions

%3CLINGO-SUB%20id%3D%22lingo-sub-2382955%22%20slang%3D%22en-US%22%3ETrying%20to%20use%20retryOptions%20for%20service%20bus%20trigger%20on%20Azure%20Functions%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2382955%22%20slang%3D%22en-US%22%3E%3CP%3EI%20am%20just%20trying%20to%20follow%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-functions%2Ffunctions-bindings-service-bus%23additional-settings-for-version-5x%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3Ethis%20article%3C%2FA%3E%20in%20order%20to%20customize%20retrying%20behavior%20on%20the%20service%20bus%20trigger%20(which%20is%20I%20believe%2010%20attempts%20with%20a%20small%20interval%20in%20between).%3C%2FP%3E%3CP%3EIt%20seems%20to%20be%20not%20working%20(It%20runs%2010%20times%20before%20service%20bus%20message%20goes%20to%20dead%20letter.%20It%20does%20not%20take%20into%20account%20appropriate%20settings%20from%20host.json%20file)%3C%2FP%3E%3CP%3EI%20have%20%3CA%20href%3D%22https%3A%2F%2Fwww.nuget.org%2Fpackages%2FMicrosoft.Azure.WebJobs.Extensions.ServiceBus%2F5.0.0-beta.3%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ethe%20latest%3C%2FA%3E%205.x%20Extension%20referenced%20by%20Nuget.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EHere%20is%20my%20very%20basic%20example%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-csharp%22%3E%3CCODE%3Eusing%20System%3B%0Ausing%20Microsoft.Azure.WebJobs%3B%0Ausing%20Microsoft.Azure.WebJobs.Host%3B%0Ausing%20Microsoft.Extensions.Logging%3B%0A%0Anamespace%20CH.AF.SampleBox%0A%7B%0A%20%20%20%20public%20static%20class%20TestSbRetry%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%5BFunctionName(%22TestSbRetry%22)%5D%0A%20%20%20%20%20%20%20%20%2F%2F%5BFixedDelayRetry(5%2C%20%2200%3A00%3A30%22)%5D%0A%20%20%20%20%20%20%20%20public%20static%20void%20Run(%5BServiceBusTrigger(%22test2%22%2C%20Connection%20%3D%20%22Sbus2%22)%5Dstring%20myQueueItem%2C%20ILogger%20log)%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20log.LogInformation(%24%22Attempt%20to%20run%20dunction%20at%20%7BDateTime.Now%7D%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20log.LogInformation(%24%22C%23%20ServiceBus%20queue%20trigger%20function%20processed%20message%3A%20%7BmyQueueItem%7D%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20throw%20new%20ApplicationException(%22artificial%20exception%20to%20test%20retry%22)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EAnd%20the%20host.json%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-json%22%3E%3CCODE%3E%7B%0A%20%20%22version%22%3A%20%222.0%22%2C%0A%20%20%22extensions%22%3A%20%7B%0A%20%20%20%20%22serviceBus%22%3A%20%7B%0A%20%20%20%20%20%20%22serviceBusOptions%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22retryOptions%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%22mode%22%3A%20%22fixed%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22tryTimeout%22%3A%20%2200%3A01%3A00%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22delay%22%3A%20%2200%3A00%3A20.00%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22maxDelay%22%3A%20%2200%3A01%3A00%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22maxRetries%22%3A%202%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22logging%22%3A%20%7B%0A%20%20%20%20%22fileLoggingMode%22%3A%20%22always%22%2C%0A%20%20%20%20%22logLevel%22%3A%20%7B%0A%20%20%20%20%20%20%22default%22%3A%20%22Trace%22%2C%0A%20%20%20%20%20%20%22function%22%3A%20%22Trace%22%2C%0A%20%20%20%20%20%20%22Host.Aggregator%22%3A%20%22Trace%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22applicationInsights%22%3A%20%7B%0A%20%20%20%20%20%20%22samplingSettings%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22isEnabled%22%3A%20false%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22enableLiveMetrics%22%3A%20true%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EDoes%20anybody%20have%20any%20idea%20what%20I%20am%20missing%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2382955%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%20Functions%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Occasional Contributor

I am just trying to follow this article in order to customize retrying behavior on the service bus trigger (which is I believe 10 attempts with a small interval in between).

It seems to be not working (It runs 10 times before service bus message goes to dead letter. It does not take into account appropriate settings from host.json file)

I have the latest 5.x Extension referenced by Nuget.

 

Here is my very basic example:

 

 

using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;

namespace CH.AF.SampleBox
{
    public static class TestSbRetry
    {
        [FunctionName("TestSbRetry")]
        //[FixedDelayRetry(5, "00:00:30")]
        public static void Run([ServiceBusTrigger("test2", Connection = "Sbus2")]string myQueueItem, ILogger log)
        {
            log.LogInformation($"Attempt to run dunction at {DateTime.Now}");
            log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
            throw new ApplicationException("artificial exception to test retry");
        }
    }
}

 

 

And the host.json

 

 

 

{
  "version": "2.0",
  "extensions": {
    "serviceBus": {
      "serviceBusOptions": {
        "retryOptions": {
          "mode": "fixed",
          "tryTimeout": "00:01:00",
          "delay": "00:00:20.00",
          "maxDelay": "00:01:00",
          "maxRetries": 2
        }
      }
    }
  },
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Trace",
      "function": "Trace",
      "Host.Aggregator": "Trace"
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": false
      },
      "enableLiveMetrics": true
    }
  }
}

 

 

 

Does anybody have any idea what I am missing?

0 Replies