Quartz简介

  Quartz是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统。Quartz可以用来创建执行数十,数百乃至数万个作业的简单或复杂的计划; 作业的任务被定义为标准的Java组件,它可以执行几乎任何你可能编程的任务。Quartz Scheduler包含许多企业级功能,例如支持JTA事务和集群。

  如果您的应用程序具有需要在特定时间内发生的任务,或者如果您的系统经常性维护作业,那么Quartz可能是您理想的解决方案。

Quartz定时任务实现

  导入jar包(maven依赖)

<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>

  示例代码

    自定义一个任务类实现Quartz的Job接口,并重写execute()函数

package com.qgx.quartz.job;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException; public class MyJob implements Job{ public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.err.println("Hello Quartz!"); } }

    然后定义一个测试类,需要将定义相应的任务(JobDetial)和触发器(trigger),并将其加到一个执行日程(Scheduler)中,启动日程。

  

package com.qgx.quartz;

import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory; import com.qgx.quartz.job.MyJob; public class QuartzTest { public static void main(String[] args) throws Exception{ JobDetail job = JobBuilder.newJob(MyJob.class)
.withIdentity("job1", "group1")
.build(); // Trigger the job to run now, and then repeat every 5 seconds
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds()
.repeatForever())
.build(); // Grab the Scheduler instance from the Factory
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// and start it off
scheduler.start();
// Tell quartz to schedule the job using our trigger
scheduler.scheduleJob(job, trigger);
}
}

  执行结果:每5秒执行一次

  

  

最新文章

  1. 【Python基础学习五】列表,元祖,字典
  2. 安装好oracle后,打开防火墙遇到的问题!
  3. FormsAuthentication身份认证源代码
  4. 信号量及PV原语
  5. 完整cocos2d-x编译Andriod应用过程
  6. [转]select模型的一种技巧运用-libevent
  7. 使用js为html元素动态添加class
  8. linux之umask函数解析
  9. ES6 模块化笔记
  10. [LeetCode] Keys and Rooms 钥匙与房间
  11. linux基础一篇就够了
  12. 20165235 实验一 Java开发环境的熟悉
  13. QT 字符串的使用技巧总结
  14. 54.NSJSONSerialization类进行json解析(字符串“UTF-8解码”)
  15. Java J2EE读取配置文件
  16. LuoguP1032 字符变换(BFS)
  17. C++异常抛出与捕获及处理
  18. ipv6相关
  19. PCA误差
  20. document.cookie = &#39;wcookie_date=&#39; + wv + &#39;;max-age=60&#39;

热门文章

  1. asp.net数据加载进度和模态窗口的完美打开,而且窗口不被阻止
  2. vs中正常IIS发布网站后css样式、图片丢失jQuery报错 $ is not defined
  3. win10 ssd 卡顿
  4. 字符串format拼接格式化
  5. 有关导出Excel特殊字符的问题
  6. C#添加文字水印
  7. Django runserver UnicodeDecodeError
  8. 4.App非功能测试总结
  9. ecmall 入口文件解析 引入了什么
  10. 前台的url通过 ActionName?var1=xx&amp;var2=yy 的形式传给特定action