Очередь Azure - вновь появляющиеся сообщения, когда задание становится слишком длинным или возникает исключение при выполнении задания. - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть веб-задание, которое запускается сообщениями очереди.Если задание становится слишком длинным, сообщение снова появляется в очереди, и запускается новый экземпляр веб-задания, потребляющий то же сообщение.Это не должно быть.

Мы хотим, чтобы это сообщение было удалено из очереди сообщений после запуска задания с этим сообщением.

Мы установили MaxDequeueCount = 1 с мыслью, чтоОн попытается обработать сообщение один раз, а затем сообщение будет перемещено в очередь отравлений.Но MaxDequeueCount не работает для нас.В нашей работе мы используем версию 8.7.0.0 Microsoft.WindowsAzure.Storage.

Пожалуйста, помогите!

JobHostConfiguration config = new JobHostConfiguration();
config.NameResolver = new QueueNameResolver();
config.Queues.BatchSize = Convert.ToInt32(ConfigurationManager.AppSettings["BatchSize"]);
config.Queues.MaxDequeueCount = Convert.ToInt32(ConfigurationManager.AppSettings["MaxDequeueCount"]);
var host = new JobHost(config);
host.RunAndBlock();

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Должно быть исправлено начиная с 2.1.0-beta1.Но в настоящее время нет выпущенной версии 2.1.0.Последняя версия, включая исправление: 2.1.0-beta4.

Вы можете установить предварительную / бета-версию (если хотите или можете), чтобы избавиться от проблемы.Установка бета-версии не подходит для меня на производстве, поэтому вы можете установить Microsoft.Azure.WebJobs 2.1.0, чтобы попробовать.

Для получения более подробной информации вы можете обратиться к этой проблеме и этой один .

0 голосов
/ 26 декабря 2018

Я думаю, вы достигли таймаута аренды сообщения.Вы должны быть в состоянии продлить аренду, используя UpdateMessage (вы должны иметь возможность продлить его до 7 дней в соответствии с этим сравнением возможностей ).

Надеюсь, это поможет!

...