Azure WebJobs Madness - ServiceBusTrigger не запускается

Странно, это происходит в одном из моих WebJobs, и я не могу найти, что не так.

Этот WebJob настроен на использование ServiceBusTrigger, как только сообщение получено в определенной очереди служебной шины. Эта функция имеет время выполнения в минутах / часах, поэтому я настроил конфигурацию JobHostConfiguration так:

config.UseServiceBus(new ServiceBusConfiguration()
{
     MessageOptions = new Microsoft.ServiceBus.Messaging.OnMessageOptions()
     {
          MaxConcurrentCalls = 3,
          AutoRenewTimeout = new TimeSpan(4, 0, 0),
          AutoComplete = true                    
     }
});

Если я правильно понял, это дало бы, что каждая функция:

  1. Выполняется максимум три раза за экземпляр параллельно (по одному на каждое сообщение)
  2. Блокировка сообщения сохраняется не более 4 часов. Это позволит избежать отправки сообщений в очередь, если время обработки составляет менее 4 часов.
  3. Как только функция завершается, сообщение удаляется из очереди (даже если это должно быть поведение по умолчанию).

Эти сообщения содержат задания, которые должны быть выполнены для разных пользователей. Для того чтобы быть выполненным в параллалле для разных пользователей, но в качестве отдельного для каждого пользователя, внутри функции я беру в аренду (отличается от каждого пользователя) и сохраняю ее в течение 60 секунд, обновляя ее каждые 30 секунд с помощью Задачи.

Кажется, это работает: задания выполняются параллельно для разных клиентов, и одни и те же запросы для одних и тех же пользователей сериализуются.

Теперь иногда случается, что WebJob прекращает запуск функции, даже если очередь полна сообщений. Я не понимаю почему.

Как только я перезапускаю эту веб-работу, все работает как прежде. Любые идеи о том, почему это происходит?

Что я заметил, так это то, что приложение было (ошибочно) остановлено, даже если работали веб-задания. Может в этом была проблема?

0 ответов