已经好久没有写技术博文了,今天就谈一谈我前两天自学的quartz定时任务吧,我对quartz定时任务的理解,就是可以设定一个时间,然后呢,在这个时间到的时候,去执行业务逻辑,这是我的简单理解,接下来看代码是如何实现的,首先有两种实现的方式,一种是通过代码实现,另一种是通过配置文件实现,我建议使用配置文件配置的方式实现定时任务,毕竟以后有什么变化,只需要改配置文件就可以了,不需要改代码,重新编译,重新部署。

先来讲一下第一种纯代码实现的定时任务。

第一步需要先下载所必须的jar包,我使用的jar包是:

第二步,写一个类实现Job接口,里面只有一个方法execute,在这个方法里写上自己的业务逻辑即可,时间到的时候就会执行这里的业务逻辑。

第三步,写一个定时任务管理类QuartzManager.java,在这个类里有增加定时任务的方法,由于触发器有两种,第一种的simpleTrigger简单触发器,第二种是cronTrigger,可以定义很复杂的时间,所以有两种增加定时任务的方法。

第一种方法使用simpleTrigger简单触发器

上面代码的注释写的很清楚,着重介绍一下jobDataMap,这个map是用于传递参数的,可以将这里设的值,在任务里获取到,以便不时之需。

第二种方法是使用cronTrigger触发器

这个方法和第一种方法的区别就是触发器的不同,导致设置时间的方式不同而已,但是为了应付现实中比较复杂的场景,建议使用第二种触发器。

第四步,写一个main方法用于测试

着重介绍一下第二种触发器的时间设置规则,上面的0/5 * * ? * * *的意思是每隔5秒执行一次任务,接下来会列出一些常用的时间

接下来讲一下使用配置文件实现的定时任务。

第一步需要先下载所必须的jar包,我使用的jar包是:

第二步,写一个类实现Job接口,里面只有一个方法execute,在这个方法里写上自己的业务逻辑即可,时间到的时候就会执行这里的业务逻辑。

第三步,是需要log4j的配置文件,quartz的配置文件和quartz_jobs.xml

接下来是quartz_jobs.xml,这个文件的位置有些要求,看目录结构

这个文件里面的具体内容就是配置job,配置trigger

在这个配置文件里,我定义了两个任务,一个任务使用的simpleTrigger,另一个使用的是cronTrigger

第四步,写一个测试类,测试定时任务,在这个类里只需要从调度工厂里获取调度,然后开启调度即可。

上述两种实现定时任务的方式就实现了,不过本人强烈建议使用配置的方式实现定时任务,好处就不再多说了。

  

对quartz定时任务的初步认识的更多相关文章

  1. Quartz定时任务学习(二)web应用/Quartz定时任务学习(三)属性文件和jar

    web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...

  2. quartz定时任务框架的使用

    quartz定时任务时间设置 这些星号由左到右按顺序代表 :     *    *     *     *    *     *   *                                 ...

  3. Quartz定时任务学习(二)web应用

    web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...

  4. Quartz定时任务使用小记(11月22日)

    骤然接触quartz,先从小处着手,why,what,how quartz定时任务: 为什么使用quartz定时任务,以及定时任务在实际应用场景下的特定需求. 1.用户方面的需要,为了提供更好的使用体 ...

  5. quartz定时任务时间配置

    quartz定时任务时间设置描述(2011-03-03 16:23:50)转载▼标签: quartz时间it 分类: 凌乱小记  这些星号由左到右按顺序代表 :     *    *     *    ...

  6. Spring整合Quartz定时任务执行2次,Spring定时任务执行2次

    Spring整合Quartz定时任务执行2次,Spring定时任务执行2次 >>>>>>>>>>>>>>>&g ...

  7. Quartz 定时任务时间设置

    转自https://blog.csdn.net/zdx1515888659/article/details/79158169 quartz定时任务时间设置: 这些星号由左到右按顺序代表 : * * * ...

  8. quartz定时任务及时间设置

    quartz 定时任务时间设置1.这些星号由左到右按顺序代表 :     *    *     *     *    *     *   *                               ...

  9. Spring整合Quartz定时任务 在集群、分布式系统中的应用(Mysql数据库环境)

    Spring整合Quartz定时任务 在集群.分布式系统中的应用(Mysql数据库环境)   转载:http://www.cnblogs.com/jiafuwei/p/6145280.html 单个Q ...

随机推荐

  1. 基于Struts自定义MVC-2

    自定义MVC        数据库:Oracle表:User(id,uname,upwd)自定义Struts框架一.定义Action接口 import javax.servlet.http.*; pu ...

  2. 算法模板——Trie树

    实现功能——实现对于不同字符串以及之前出现过的字符串的识别,对于单个长度为L的字符串,复杂度为O(L); 代码不难懂,直接上(在识别字符串方面,个人觉得其好处远远大于hash识别——1.理论上都是O( ...

  3. 1682: [Usaco2005 Mar]Out of Hay 干草危机

    1682: [Usaco2005 Mar]Out of Hay 干草危机 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 391  Solved: 258[ ...

  4. ABP入门系列(14)——应用BootstrapTable表格插件

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 之前的文章ABP入门系列(7)--分页实现讲解了如何进行分页展示,但其分页展示仅适用于 ...

  5. RobotFramework中解析中文报错UnicodeDecodeError

    在RobotFramework中解析一段包含中文的字符串时遇到下面的报错: FAIL : UnicodeDecodeError: 'ascii' codec can't decode byte 0xe ...

  6. Mac 上的 outlook 一直让输入密码

    Mac 上的 outlook 即便输入了正确的密码,依然提示密码错误,让重新输入,需要输入多遍之后才能连上服务器. 出现这个问题的原因可能是证书过期了. 解决方式如下: 1.找到 2. 删掉 Exch ...

  7. Backbone.js中的where和findWhere

    小编的公司框架用的MVC框架依旧是Backbone.js,老大说框架不重要,重要的是框架的编程思想.于是乎,小编从头开始学习Backbone.走马观花似的看了下API文档,撸起袖子就是干.但是碰到一个 ...

  8. mac环境下安装xampp

    首先下载XAMPP,然后配置虚拟域名hosts,再配置Apache服务, 配置Apache服务 1.打开/Applications/XAMPP/xamppfiles/etc/httpd.conf文件, ...

  9. JS把命名空间传递给模块形式

    //方法依赖 jquery 或者其他 有扩展方法 extend() 类库  例如: underscore.js 链接地址 http://underscorejs.org var app = {}; ( ...

  10. Linux shell-grep

    grep --help备忘录 Usage: grep [OPTION]... PATTERN [FILE]...Search for PATTERN in each FILE or standard ...