Window服务基于Quartz.Net组件实现定时任务调度(二)

前言:

  在上一章中,我们通过利用控制台实现定时任务调度,已经大致了解了如何基于Quartz.Net组件实现任务,至少包括三部分:job(作业),trigger(触发器),scheduler(调度器)。其中job是需要在一个定时任务中具体执行的业务逻辑,trigger通过规定job何时并按照何种指定的规则进行执行,最后job和trigger会被注册到scheduler中,利用scheduler(调度器)来负责协调job和trigger的搭配运行。.

  你是否在工作中会遇到需要软件具有自动执行任务的功能,但是又不希望直接启动软件来手动执行任务? Window服务基于Quartz.Net组件实现定时任务调度(二)   这个时候,我们可以考虑用到window服务,基于Quartz.Net组件定时轮询数据库同步,定时邮件通知,定时处理数据等功能。

开始:

首先创建一个windows服务项目

Window服务基于Quartz.Net组件实现定时任务调度(二)在创建好的项目中,Service1.cs文件中点击单击此处切换到代码视图切换到代码

Window服务基于Quartz.Net组件实现定时任务调度(二)这个时候我们可以注意到两个方法:OnStart  (服务启动)和 OnStop(服务停止)

Window服务基于Quartz.Net组件实现定时任务调度(二)Window服务基于Quartz.Net组件实现定时任务调度(二)

一、创建一个scheduler的引用:

Window服务基于Quartz.Net组件实现定时任务调度(二)

二、启动 scheduler:

Window服务基于Quartz.Net组件实现定时任务调度(二)三、实现IJob:

SyncJob.cs 实现IJob,在Execute方法里编写要处理的业务逻辑,系统就会按照Quartz的配置,定时处理

Window服务基于Quartz.Net组件实现定时任务调度(二)

四、创建trigger:(建立一个某个时间点的触发器,并且每5秒执行一次)Window服务基于Quartz.Net组件实现定时任务调度(二)

五、触发器执行任务:

Window服务基于Quartz.Net组件实现定时任务调度(二)

将几个步骤整合后代码如下:

Window服务基于Quartz.Net组件实现定时任务调度(二)安装

以管理员的身份打开cmd

Window服务基于Quartz.Net组件实现定时任务调度(二)

Window服务基于Quartz.Net组件实现定时任务调度(二)

运行:

间隔5秒执行一次后的效果:

通过日志的方式输出数据,查看效果

Window服务基于Quartz.Net组件实现定时任务调度(二)

附加:

一、删除服务

以管理员的身份打开cmd

Window服务基于Quartz.Net组件实现定时任务调度(二)二、调试window服务    

1)安装并运行服务

Window服务基于Quartz.Net组件实现定时任务调度(二)

2)附加进程

Window服务基于Quartz.Net组件实现定时任务调度(二)

Window服务基于Quartz.Net组件实现定时任务调度(二)

3)在代码中加入断点进行调试

Window服务基于Quartz.Net组件实现定时任务调度(二)总结:

1.当我们在需要用到定时执行任务的时候,可以考虑使用通过window服务加上quartz组件结合的方式,实现对任务的定时执行,这也是在很多场景中可以实现的方法,比如:定时轮询数据库同步,定时邮件通知,定时处理数据等

2.通过管理工具显示当前执行的任务和执行情况,也利用调试工具调试Window服务中遇到的问题。

3.quartz还有更多的用法,可以参考资料:Quartz.Net官方文档   和  Quartz.Net开源地址