处理Azure计时器功能中的异常

时间:2018-12-03 18:43:33

标签: azure-functions

我有一个计时器功能,该功能每15分钟运行一次(下面的伪代码)。由于第三方服务中的供应商问题,我们会看到失败,接着是延长时间(45分钟,6小时等),其中计时器功能没有执行。

public static class ThirdPartySynchronization
{
    private static readonly ThirdPartySdk s_thirdPartySdk = new ThirdPartySdk();

    [FunctionName("TimerTriggerCSharp")]
    public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)
    {
        try 
        {
            await s_thirdPartySdk.Synchronize();
        }
        catch (Exception ex)
        {
            log.Error(ex.Message);
            throw;
        }
    }
}

当我在本地运行该函数并遇到相同的错误状态时,throw偶尔会导致func.exe主机崩溃,这使我想知道我们的消费计划中是否发生了类似的问题。

我没有在Azure文档或最佳实践中看到很多有关如何处理异常(或将计时器函数标记为不成功)的指导。是否有建议的任何模式来处理C#Azure计时器功能中的异常行为?

1 个答案:

答案 0 :(得分:1)