Функция Azure, не обрабатывающая по одному сообщению за разC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Функция Azure, не обрабатывающая по одному сообщению за раз

Сообщение Anonymous »

У меня есть функция Azure с использованием триггера служб автобусы, созданной в C#. < /p>
Эта функция определяет сообщение об сервисной шине (которое содержит URL -адрес blob в файл) и вызывает API, API создает запись DB, затем заполняет запись DB, используя файл Blob и удаляет ее. < /P>
Процесс API может занять до 40 секунд. < /P>
После окончания API он посылает ответ на функцию Azure, которая выполняет «overseMessageAsync» или «DeadletMersessAgeAsync» в зависимости от того, был ли ответ API положительным или нет. < /p>
Проблема. , основываясь на просмотре записей DB вживую, он создает несколько записей БД, а затем начинает заполнять их одновременно, даже после того, как я (предположительно) указал только по одному за раз. Когда он начнет получать сообщения, это идет один за другим (как и ожидалось), но после нескольких сообщений (6-7) он запускает несколько сообщений за раз. < /P>
в зависимости от того, сколько сообщений Я отправляю его либо: < /p>

(сотни) правильно заполняет DB и завершает все сообщения, но отправляет многие из них Deadletter, как «Всёр не существует «(Может быть, по какой -то причине, это дает одно и то же сообщение об сервисной шине более одного раза). Это постоянно показывает успех в вызовах функций, поскольку функция выполняет ответ от API (даже если это сбой) < /li>
(тысячи) он прекращает заполнение записей БД, созданных после несколько тысяч сообщений, обрабатывая около половины из них. Отправка каждого не обработанного вызова на неудачные призывы. < /p>
Я попытался самостоятельно заполнить сообщения, установив автозаполнение FALS . < /p>
function < /p>
public async Task Run(
[ServiceBusTrigger("serviceBus", Connection = "ServiceBusConnection", AutoCompleteMessages = false)]
ServiceBusReceivedMessage message,
ServiceBusMessageActions messageActions)
{
string content = message.Body.ToString();
try
{
//Send content to EndPoint
RestClient client = new RestClient("endpoint");
RestRequest request = new RestRequest("requestendpoint", Method.Post);
request.AddQueryParameter("paramName", content);
RestResponse response = await client.ExecuteAsync(request);

if (response.IsSuccessful)
{
_logger.LogInformation($"Success");
await messageActions.CompleteMessageAsync(message);
}
else
{
var errorDetails = response.Content;
_logger.LogInformation($"Failed: {errorDetails}");
await messageActions.DeadLetterMessageAsync(message);
}
}
catch (Exception ex)
{
_logger.LogInformation($"Exception: {ex}");
await messageActions.DeadLetterMessageAsync(message);
}
}
< /code>
Настройка Azure файла хоста < /p>
{
"version": "2.0",
"extensions": {
"serviceBus": {
"prefetchCount": 1,
"messageHandlerOptions": {
"autoComplete": false,
"maxConcurrentCalls": 1
},
"sessionHandlerOptions": {
"autoComplete": false,
"maxConcurrentSessions": 1
},
"batchOptions": {
"maxMessageCount": 1,
"autoComplete": false
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... -at-a-time
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Функция Azure, не обрабатывающая по одному сообщению за раз
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как применить комментарии к одному сообщению ко всем сообщениям одной категории в Wordpress
    Anonymous » » в форуме Php
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как добавить собственный CSS к одному Toast-сообщению в Angular?
    Anonymous » » в форуме CSS
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Очередь в Python, обрабатывающая более одного видео одновременно?
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как мы можем добавить задержку к сообщению, которое присутствует в очереди служебной шины Azure, с помощью Java?
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»