Asp.Net Core 托管服务

## Asp.Net Core 托管服务

(1)托管服务简介

  • 托管服务实现IHostedService接口,一般编写从BackgroundService继承的类。

image-20220310203128316

  • 注入托管服务services.AddHostedService();

image-20220310203137625

(2)托管服务的异常问题

  • HostOptions.BackgroundServiceExceptionBehavior设置为Ignore,程序会忽略异常,而不是停止程序

image-20220310203719568

  • ExecuteAsync方法中把代码用try……catch包裹起来,当发生异常的时候,记录日志中或发警报等。

image-20220310203240913

(3)托管服务中的DI

  • 托管服务是以单例的生命周期注册到依赖注入容器中的。因此不能注入生命周期为范围或者瞬态的服务。

image-20220310203906816

  • 可以通过构造方法注入一个IServiceScopeFactory服务,它可以用来创建一个IServiceScope对象,这样我们就可以通过IServiceScope来创建短生命周期的服务了。记得在Dispose中释放IServiceScope。

image-20220310204039826

posted @ 2022-04-08 16:01  peng_boke  阅读(205)  评论(0编辑  收藏  举报