2016-03-24 3 views
0

Этот вопрос связан с QueueTrigger и ErrorTrigger в WebJobs. У меня есть один метод очереди процесса внутри одного открытого класса (см. Код ниже). Когда возникает какое-либо исключение (например, исключение тайм-аута), у нас есть 5 попыток повторить попытку обработки очереди. После 5 безуспешных попыток мы хотим отправить сообщение оповещения одному получателю. Для этого я добавил один метод с использованием атрибута ErrorTrigger (см. Код ниже) и установки порога и значения окна. Но в моем случае после 5 повторений он не попадает в метод ErrorTrigger. Не могли бы вы посмотреть этот код и сообщить мне, где я делаю неправильно? И если есть другой способ отправить оповещение после 5 неудачных попыток повтора, пожалуйста, помогите мне.Azure WebJobs SDK ErrorTrigger

public static class ProcessQueue 
    { 
     public static void ProcessQueue([QueueTrigger("testqueue")] string queueMessage, TextWriter logger) 
     { 
      try 
      { 
       if (logger != null) 
       { 
        //logger.WriteLine(filter.GetDetailedMessage(5)); 
        //message.Text = filter.GetDetailedMessage(1); 
       } 
       throw new TimeoutException(); // Intentionaly throwing timeout exception 
       } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
     } 
     public static void ErrorMonitor(
     [ErrorTrigger("00:00:10", 4)] TraceFilter filter, TextWriter log, 
     [SendGrid(To = "[email protected]", Subject = "Error!")] 
     SendGridMessage message) 
     { 
      // log last 5 detailed errors to the Dashboard 
      log.WriteLine("Test"); 
      message.Text = "Failed"; 
     } 
} 
+0

Пример кода выглядит uncleand- Я делюсь код снова –

+0

Если изменить threashold значение в ErrorTrigger до 5, то и не ударять этот метод после повторных попыток threashold завершения. –

ответ

0

В вашем примере [ErrorTrigger("00:00:10", 4)] не то, что триггер ошибки: «Если есть 4 ошибки в 10-секундного периода» (см Error-Monitoring) - что может быть немного быстро для очереди.

Попробуйте [ErrorTrigger("00:05:00", 4)] = четыре неудачи в 5-минутного периода

Смежные вопросы