Polly .Net 使用 IHostApplicationLifetime 优雅地关闭应用程序

问题描述

如果发生特定类型的异常 (DatabaseException),最终结果是关闭应用程序。

然而当前方法 HandleDatabaseException 不会停止应用程序,执行将继续。即使执行了 _applicationLifetime.Stop()

private IHostApplicationLifetime _applicationLifetime;

public void CreatePolcy() 
{
    var policy = Policy
                .Handle<DatabaseException>(ex => HandleDatabaseException(ex))
                .WaitAndRetryForever(
                    retryAttempt => TimeSpan.FromSeconds(Math.Pow(2,retryAttempt)),(exception,timespan) => HandleRetry(exception,timespan,stoppingToken));
}

public bool HandleDatabaseException(Exception ex) 
{
   _applicationLifetime.Stop();

   return true;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)