当前位置: 首页 > news >正文

做毕设最常去的几个网站企业文化墙

做毕设最常去的几个网站,企业文化墙,腾讯云国外服务器,建筑网校哪个比较好目录 托管服务的异常问题 托管服务中使用DI 托管服务案例:数据的定时导出 场景,代码运行在后台。比如服务器启动的时候在后台预先加载数据到缓存,每天凌晨3点把数据导出到备份数据库,每隔5秒钟在两张表之间同步一次数据。托管服…

目录

托管服务的异常问题

托管服务中使用DI

托管服务案例:数据的定时导出


场景,代码运行在后台。比如服务器启动的时候在后台预先加载数据到缓存,每天凌晨3点把数据导出到备份数据库,每隔5秒钟在两张表之间同步一次数据。托管服务实现IHostedService接口,一般编写从BackgroundService继承的类。如需定时操作,可使用Hangfire框架。

builder.Services.AddHostedService<HostedService>();

托管服务的异常问题

  1. 从.NET 6开始,当托管服务中发生未处理异常的时候,程序就会自动停止并退出。可以把HostOptions.BackgroundServiceExceptionBehavior设置为Ignore,程序会忽略异常,而不是停止程序。不过推荐采用默认的设置,因为“异常应该被妥善的处理,而不是被忽略”。
  2. 要在ExecuteAsync方法中把代码用try……catch包裹起来,当发生异常的时候,记录日志中或发警报等。

托管服务中使用DI

  1. 托管服务是以单例的生命周期注册到依赖注入容器中的。因此不能注入生命周期为范围或者瞬态的服务。比如注入EF Core的上下文的话,程序就会抛出异常。
  2. 可以通过构造方法注入一个IServiceScopeFactory服务,它可以用来创建一个IServiceScope对象,这样我们就可以通过IServiceScope来创建短生命周期的服务了。记得在Dispose中释放IServiceScope。
public class HostedService : BackgroundService
{private IServiceScope serviceScope;public HostedService(IServiceScopeFactory serviceScopeFactory){this.serviceScope = serviceScopeFactory.CreateScope();}public override void Dispose(){this.serviceScope.Dispose();base.Dispose();}protected override async Task ExecuteAsync(CancellationToken stoppingToken){try{var testService = serviceScope.ServiceProvider.GetRequiredService<TestService>();Console.WriteLine("HostService1启动" + testService.Add(1, 1));await Task.Delay(3000);string txt = await File.ReadAllTextAsync("f:/1.txt");Console.WriteLine("文件读取完成");string s = null;s.ToString();await Task.Delay(3000);Console.WriteLine(txt);}catch (Exception ex){Console.WriteLine("服务中出现未处理异常" + ex);}}
}
public class TestService
{public int Add(int a, int b){return a + b;}
}
builder.Services.AddHostedService<HostedService>();
builder.Services.AddScoped<TestService>();

托管服务案例:数据的定时导出

常驻后台的托管服务并不需要特殊的技术,我们只要让ExecuteAsync中的代码一直执行不结束就行了。实现的功能就是每隔五秒钟统计一次数据库中的数据,将数据写入文本。

builder.Services.AddHostedService<ScheduledService>();public class ScheduledService : BackgroundService
{private readonly IServiceScope serviceScope;public ScheduledService(IServiceScopeFactory serviceScopeFactory){this.serviceScope = serviceScopeFactory.CreateScope();}public override void Dispose(){this.serviceScope.Dispose();base.Dispose();}protected override async Task ExecuteAsync(CancellationToken stoppingToken){try{var dbCtx = serviceScope.ServiceProvider.GetRequiredService<MyDbContext>();while (!stoppingToken.IsCancellationRequested){var count = dbCtx.Users.LongCount();await File.WriteAllTextAsync("F:/1.txt", count.ToString());await Task.Delay(5000);}Console.WriteLine("导出成功" + DateTime.Now);}catch (Exception ex){Console.WriteLine(ex);}}
}
http://www.yayakq.cn/news/394679/

相关文章:

  • 网站站点多少钱公司简介模板100字范文
  • 免费营销软件网站建设网址大全浏览器
  • 怎么建立一个网站能够与讯飞云对话广告营销策略有哪些
  • 网站建设的安全可行性网站按条件显示广告图片
  • 网站姐姐做床戏网站设计常用的几个软件
  • 网站建设中首页模板下载中国企业信息查询网
  • 网站建设招标需求镇江企业网站设计开发价格
  • 江苏个人网站备案拓者设计吧网站官网
  • 如何做网站策划html代码翻译
  • 12380举报网站制度建设做境外的网站网站违法么
  • 电脑网站网页设计搜索竞价排名
  • 衡阳网站定制网页设计总结体会
  • 不准别人网站做反链个人建网站做站长
  • 公司网站建设华为wap网站快速开发
  • asp.net网站创建浏览器快捷图标承接app网站开发的广告
  • 龙岗做商城网站建设页面设计术语
  • 青岛网站建设方案托管推广工具有什么
  • 厦门易尔通做网站怎么样wordpress怎么弄在线表单
  • 房地产网站模板 下载潍坊集团网站建设
  • 唐山专门做网站权威的顺德网站建设
  • 境外建网站商城网站建设最新报价
  • 青岛网站制作公司 网络服务网站建设常规自适应
  • 网站建设平台策划旅游网页设计作品欣赏
  • 做家居商城网站开一个做网站的公司赚钱吗
  • 品牌网站建设市场分析国内的网站空间
  • 微网站功能介绍做网站 二维码登录
  • 做网站多少钱西宁君博相约西安建设工程中心交易网站
  • 群晖建设网站3d建模软件推荐
  • 网站营销学多久桂林漓江风景图片
  • 网络营销成功案例3篇潍坊网站优化排名