2016-03-24 107 views
0

此問題與WebJobs中的QueueTrigger和ErrorTrigger有關。 我在一個公共類中有一個Process Queue方法(請參閱下面的代碼)。當發生任何異常(例如Timeout異常)時,我們有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

如果我在ErrorTrigger改變threashold值5,然後也不會打這個方法重試threashold完成後。 –

回答

0

在您的例子[ErrorTrigger("00:00:10", 4)]不是錯誤觸發:「如果在10秒內4個錯誤」(見Error-Monitoring) - 這可能是一個隊列有點快。

嘗試在5分鐘內[ErrorTrigger("00:05:00", 4)] =四類故障