您现在的位置是:课程
ASP.NET Core Worker Service定时任务+开源作业调度框架实战演练
2023-06-30 21:48课程 人已围观
《ASP.NET Core Windows服务开发技术实战演练》
一、课程介绍
人生苦短,我用.NET Core!大家都知道如果想要程序一直运行在Windows服务器上,最好是把程序写成Windows服务程序;这样程序会随着系统的自动启动而启动,自动关闭而关闭,不需要用户直接登录,直接开机就可以启动。今天阿笨将给大家带来实如何利用.NET Core跨平台开发技术在Windows操作系统平台上开发我们的Windows服务应用程序以及在Linux操作系统上部署我们的守护进程(daemon)服务,真真的体现.NET Core的跨平台强大之处: 实现一次编译,多平台部署运行!
一句话总结今天我们要学习的目标是:
ASP.NET Core MVC/WebApi部署托管在Windows服务中。
1、ASP.NET Core部署托管在Windows服务
2、ASP.Net Core中使用Worker Service
《.NET Core开源Quartz.Net作业调度框架实战演练》
好消息,课程内容免费升级啦~, 新增《
ASP.NET Core Windows服务开发技术实战演练
》章节。1、ASP.NET Core部署托管在Windows服务。
2、ASP.Net Core中使用Worker Service。
一、需求背景
人生苦短,我用.NET Core!作为一枚后端.NET开发人员,项目实践常遇到定时Job任务的工作,在Windows平台最容易想到的的思路Windows Service服务应用程序,而在Linux系统中一般会采用Crontab程序,Supervior等进程管理工具来解决宿主托管问题。今天给阿笨大家分享一种Docker容器化快速部署的方式来实现.NET Core后台定时任务托管在Linux操作系统中。
目前在.NET Core有两种实现方式:
1、采用AspNetCore自带的HostService, 这是一个轻量级的后台服务, 需要搭配timer完成定时任务。在下一章节的《ASP.NET Core Windows服务开发技术实战演练》课程阿笨将给大家分享。
优点:宿主在Web应用程中,托管方式简单灵活。
缺点:1)、作业调度计划单一。2)、与Web应用程序糅合度太高。
2、采用第三方开源的Quartz.Net组件,支持简单、复杂灵活的调用作业计划。比较适合我们项目中有大量的业务需求需要使用作业计划求。
优点:1)、作业调度计划丰富。2)、与Web应用程序解耦。
缺点:如果采用第三方进程管理工具来实现托管方式,配置繁琐且不易统一管理。推荐采用Docker容器化技术来实现宿主托管。
1.2、一句话总结今天我们学习达到的目标?
如何利用Docker容器化技术快速部署实现宿主托管我们的后台定时作业调度任务。
二、Quartz.Net组件在.NET Core中的实战项目应用
三、如何采用Dockerfile将构建制作.NET Core应用程序镜像
四、Docker挂载宿主机日志输出目录到容器中
五、思考与总结
《ASP.NET Core轻量级作业调度FluentScheduler框架实战演练》
一、背景介绍
在ASP.NET Core MVC/WebApi项目需要一个按时执行的任务,每隔几分钟执行一个,或者每隔几小时执行一次等等,这个时候就需要一个定时的功能,最简单的就是用Timer自己写一个,但是自己写的性能等各方面有可能不健全等等,虽然ASP.NET Core现在内置提供了自带的Worker Service功能,但是对于复杂时间的作业计划并不支持;
大家可能会想到使用强大的Quartz.Net框架,为什么不选择它,主要是因为太复杂的了,不容易简单快速上手 ,而现在开源的库也越来越多,功能也越来越好,那么阿笨今天给大家推荐一款轻量级的作业调度Job任务框架,简单且功能强大,很方便的与ASP.NET Core进行结合,那么它的名字是什么。。。。
文章末尾阿笨已经给大家把示例代码进行封装好了,开箱即用。你再也不用为项目中如何执行多个作业任务而感到烦恼了?
《ASP.NET Core开源任务调度框架Hangfire实战演练》
Hangfire快速介绍
一般定时调度job任务框架,你也可以自己封装实现,也可以选择开源的有很多,那么今天的主角就是Hangfire。 Hangfire是一个开源的.NET/.NET Core任务调度框架,提供了内置集成化的控制台,可以直观明了的查看作业调度情况,并且Hangfire不需要依赖于单独的应用程序执行(如:windows服务,window计划)。并且支持持久性存储。
阿笨用自己的一句话总结Hangfire的特点就是:集成度高,持久化存储,简单不简约,非常棒棒棒。开箱即用这难道不就是我们一直想要得到的自行车?
《.NET开源作业调度框架Quartz.Net+FluentScheduler实战项目演练》
本次分享课程包含知识点如下:
1)、Quartz.NET牛刀小试(ABenNet.QuartzNet.Practice)。
2)、基于Quartz.Net工厂封装实现一行代码搞定作业调度。
3)、 如何优雅的封装FluentScheduler实现作业调度框架
(基于Topshlf+Quartz.Net封装的实际项目场景运用 ) 。
4)、FluentScheduler牛刀小试(ABenNet.FluentScheduler.Practice)。
5)、 如何优雅的封装FluentScheduler实现作业调度框架
(基于Topshlf+FluentScheduler封装的实际项目场景运用)。