.net 通过反射发起Quartz调度任务简单例子,版本为3.4.0.0
搭建步骤:
1、在Global程序入口初始化调度器。
2、新建各个任务的调度类,下面的 TestDemoJob 就是其中的一个调度任务。
如果有新增的任务,不用再去单独初始化了,因为Global遍历反射的时候就会把所有的任务加载,只需要模仿TestDemoJob的规范,新建一个类就可以了。
3、程序被回收要处理。
一定要注意的地方,大坑:
如果网站有一段时间没有人访问,网站的程序池会进行资源回收,Quartz不再起作用,为了让网站Quartz持续起作用,我们可以这样做:
在该网站对应的程序池,高级设置-进程模型-闲置超时(分钟),把时间设置长一些,可以设置到1740,如果将闲置超时设置为1分钟,我们可以可以记录到,一分钟后,程序会执行Global里面的Application_End方法。
高级设置-回收-固定时间间隔(分钟),这里具体操作还不清楚,自行百度。
所以,解决办法,在Application_End方法里面写一个http请求,访问该服务器对应的网站地址或者页面,请求一下就可以了,应用程序池就会重新被激活,我们的Quartz就可以重新起作用了。