gpt4 book ai didi

azure - 当运行 webjob 时出现任何错误或异常时,azure webjobs 如何表现?

转载 作者:行者123 更新时间:2023-12-03 05:46:26 29 4
gpt4 key购买 nike

如果运行webjob时出现任何异常或错误,我想释放所有对象。我如何知道是否发生错误。webjob 是否有任何错误触发器?

最佳答案

可以有两种方法来处理这个问题:

1) Try/Catch 方法:- 您可以触发邮件或 catch block 中的任何操作。在 catch block 中,您可以将收到的异常信息发送到您的邮件帐户,甚至可以写入任何数据库表或将其添加到任何队列。

2) 函数过滤器:- 您可以使用具有在任何异常情况下调用的函数异常过滤器属性的函数过滤器。您可以在这里找到详细信息:https://github.com/Azure/azure-webjobs-sdk/wiki/Function-Filters

他们还有一段代码,您可以从中获取引用:

public class ErrorHandlerAttribute : FunctionExceptionFilterAttribute
{

public override async Task OnExceptionAsync(FunctionExceptionContext exceptionContext, CancellationToken cancellationToken)
{
string body = $"ErrorHandler called. Function '{exceptionContext.FunctionName}': {exceptionContext.FunctionInstanceId} failed. ";
CombineErrorWithAllInnerExceptions(exceptionContext.Exception, ref body);

string[] emailList = System.Configuration.ConfigurationManager.AppSettings["SendErrorEmails"].Split(';');

await SendEmail.SendErrorNotificationAsync("WebJob - Common Driver Error", body);
}

private void CombineErrorWithAllInnerExceptions(Exception ex, ref string error)
{
error += $"ExceptionMessage: '{ex.Message}'.";
if (ex is Domain.BadStatusCodeException)
{
error += $"Status code: {((Domain.BadStatusCodeException)ex).StatusCode}";
}

if (ex.InnerException != null)
{
error += $"InnerEx: ";
CombineErrorWithAllInnerExceptions(ex.InnerException, ref error);
}
} }

您可以通过使用“ErrorHandler”属性装饰您的方法来调用它。因此,如果出现任何异常,将调用“OnExceptionAsync”函数。

关于azure - 当运行 webjob 时出现任何错误或异常时,azure webjobs 如何表现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53475766/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com