博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Quartz.Net和Windows服务实现定时任务功能
阅读量:5285 次
发布时间:2019-06-14

本文共 938 字,大约阅读时间需要 3 分钟。

        建立定时执行任务的方法有很多,如果是Window系统,可以建立“任务计划程序”。如果是SQL Server数据库,可以创建“作业”。还可以建立一个Window Service,设置一个定时线程来实现。今天讨论的Quartz.Net是一款开源的作业调度框架,它可以在配置文件中设置定时调度的时间间隔,可以实现作业和触发器之间的多对多关联,可以重用作业。现在介绍Quartz.Net和Windows服务实现定时任务的功能。

(1)创建一个Windows服务

              用VS创建一个Windows服务,把服务名称改为QService

             

(2)创建Quartz作业

              使用NuGet安装Quartz

            创建一个TestJob的类,继承IJob接口。在Execute里面就可以写作业的内容了。这里写一条日志,记录执行时间。

             配置quartz_jobs.xml文件。

             配置触发器有两种方法:

                    用<simple>直接设置循环执行的时间,计算单位用毫秒。repeat-count设置为-1的时候,表示会一直循环。

                    cron方法,主要配置start-time和cron-expression表达式。

                   无论是用哪一种方法,job-name和job-group都要与<job>里面的name和group对应。

                   job-type的内容要与你所编写的Job的命名空间对应。

(3)编写Windows服务

           Quartz的配置文件在Service创建的时候加载

(4)查看结果

          安装并启动Windows服务后,过两分钟把它停止

        查看日志可以看到我们刚才创建的Job的执行情况。

          Quartz.Net只是实现定时任务的其中一种方法。它不能解决任何问题。要使用哪一种方式实现定时任务,要根据具体的情况来确定。我见到过有人使用Quartz来做非常巨大的数据处理,而他的服务器配置很低,最后频繁出现内存溢出、服务器挂掉的问题。最后还说是Quartz.Net的扩展性不好,真是令人很无语。这种大规模的数据处理,使用数据库的定时作业是最好的办法了。定时任务不是非要使用某一种方法,可以组合实现。世上没有银弹,解决问题要结合现实的情况。

转载于:https://www.cnblogs.com/AmyLo/p/8125505.html

你可能感兴趣的文章
unique离散化用法
查看>>
Android开发2:事件处理及实现简单的对话框(Toast,AlertDialog,Snackbar,TextInputLayout的使用)...
查看>>
JavaWeb中读取文件资源的路径问题 -- 转自新浪博客
查看>>
分布式系统-性能篇
查看>>
苹果终端wifi图标点亮慢和portal弹窗机制分析以及处理办法和建议
查看>>
Java反射
查看>>
opencv读取USB摄像头程序图像显示不连续
查看>>
火狐插件打印(JS Print Setup)
查看>>
Hystrix压测
查看>>
十、泛型算法
查看>>
关于postgres中的一些宏的tips
查看>>
scrum学习
查看>>
DataGridView操作之checkbox列全选、反选
查看>>
javascript,将一个函数作为另一个函数的返回值。
查看>>
公众号开发二三事(一)----工作方法
查看>>
函数依赖集闭包、属性集闭包、超键、候选键和最小函数依赖集的求法。
查看>>
编程急转弯
查看>>
MVVM模式的3种command总结[1]--DelegateCommand
查看>>
Freemarker与普通java
查看>>
Django项目部署到Apache服务器上
查看>>