Skip to content
On this page

Control Inbox Options

c#
var configuration = 
    new ConfigurationBuilder()
        .AddJsonFile("appsettings.json").Build();

services.AddServiceBus(builder => 
{
    builder.Options.ControlInbox = new ControlInboxOptions
    {
        WorkQueueUri = "queue://configuration/control-inbox-work",
        ErrorQueueUri = "queue://configuration/control-inbox-error",
        ThreadCount = 25,
        DurationToSleepWhenIdle = new List<TimeSpan>
        {
            TimeSpan.FromMilliseconds(250),
            TimeSpan.FromSeconds(10),
            TimeSpan.FromSeconds(30)
        },
        DurationToIgnoreOnFailure = new List<TimeSpan>
        {
            TimeSpan.FromSeconds(10),
            TimeSpan.FromSeconds(30)
        },
        MaximumFailureCount = 25
    };
    
    // or bind from configuration
    configuration
        .GetSection(ServiceBusOptions.SectionName)
        .Bind(builder.Options);
})

The default JSON settings structure is as follows:

json
{
  "Shuttle": {
    "ServiceBus": {
      "ControlInbox": {
        "WorkQueueUri": "queue://configuration/control-inbox-work",
        "ErrorQueueUri": "queue://configuration/control-inbox-error",
        "ThreadCount": 25,
        "DurationToSleepWhenIdle": [
          "00:00:00.250",
          "00:00:10",
          "00:00:30"
        ],
        "DurationToIgnoreOnFailure": [
          "00:30:00",
          "01:00:00"
        ],
        "MaximumFailureCount": 25
      }
    }
  }
}

Options

OptionDefaultDescription
ThreadCount5The number of worker threads that will service the work queue.
DurationToSleepWhenIdle250ms*4,500ms*2,1s,5sA list of TimeSpan instances. Each successive idle processing run will move to the next entry in the list; resets as soon as a message is processed.
DurationToIgnoreOnFailure30s,2m,5mA list of TimeSpan instances. Each failure will move to the next entry.
MaximumFailureCount5The maximum number of failures that are retried before the message is moved to the error queue if there is one and the queue is not a stream; else the message is released.
Control Inbox Options has loaded