Ошибка триггера пакета SDK для веб-заданий Azure

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

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";
        }
}

person Rupesh Jha    schedule 24.03.2016    source источник
comment
Образец кода выглядит нечисто - я снова делюсь кодом   -  person Rupesh Jha    schedule 24.03.2016
comment
Если я изменю значение трехзначного числа в ErrorTrigger на 5, тогда он также не будет использовать этот метод после завершения повторной попытки трехзначного числа.   -  person Rupesh Jha    schedule 24.03.2016


Ответы (1)


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

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

person Neil Thompson    schedule 24.03.2016