Quartz是一个功能强大的java计划任务系统,它通过简单的配置和代码完成各种计划人数,定时单机应用到分布式的计算机间远程任务调度,都可以做到。
quartz是一个按照设定的时间规则来调度作业的调度器,比如可以设定每30s启动一个Job,但如果Job在30s内还未完成,那么quartz默认情况下还是按照设定的周期启动新的Job线程
今天刚看了一点资料,做一下笔记。
地址:
http://www.opensymphony.com/quartz/
例子:
import java.util.ArrayList;
import java.util.Date;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
import org.quartz.impl.StdSchedulerFactory;
public class TimerTest {
public static void main(String... strings) {
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched;
try {
// sched = schedFact.getScheduler();
sched = StdSchedulerFactory.getDefaultScheduler();
JobDetail jobDetail = new JobDetail("myJob", // job name
sched.DEFAULT_GROUP, // job group (you can also specify 'null' to
// use the default group)
TestJob.class); // the java class to execute
jobDetail.getJobDataMap().put("jobSays", "Hello World!");
jobDetail.getJobDataMap().put("myFloatValue", 3.141f);
jobDetail.getJobDataMap().put("myStateData", new ArrayList());
Trigger trigger = TriggerUtils.makeDailyTrigger(0, 1);
trigger.setStartTime(new Date());
trigger.setName("myTrigger");
//Add the given JobDetail to the Scheduler,
//and associate the given Trigger with it.
sched.scheduleJob(jobDetail, trigger); sched.start();
// sched.shutdown();
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.util.ArrayList;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class TestJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println("........................................");
String instName = context.getJobDetail().getName();
String instGroup = context.getJobDetail().getGroup();
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
String jobSays = dataMap.getString("jobSays");
float myFloatValue = dataMap.getFloat("myFloatValue");
ArrayList state = (ArrayList) dataMap.get("myStateData");
state.add(new Date());
System.out.println("Instance " + instName + " of DumbJob says: " + jobSays);
}
}
运行结果如同
http://www.opensymphony.com/quartz/wikidocs/QuickStart.html所说的,显示了一堆红色的信息,说明程序读取了默认的Quartz配置,同时已经启动了。
问题1:TestJob 中定义的一些输出信息怎么什么都没有呢,定义了1分钟,但是没有输出?
仔细看了例子代码,发现居然范了一个低级错误,使用了makeDailyTrigger,该方法是定时,每天几点几分进行计划任务,修改为
Trigger trigger = TriggerUtils.makeSecondlyTrigger(3);
之后没三秒钟就打印:
........................................
Instance myJob of DumbJob says: Hello World!
TriggerUtils内还有很多其他有用的方法,看
quartz API
再增加一个JOB,只需要增加一个job类,jobDetail,Trigger两对象,调用scheduleJob方法就可以加入调度队列了。
这只是一个简单的例子,quartz还有很复杂的功能,继续学习。
引用
分享到:
相关推荐
Quartz是Java领域的一款强大的开源任务调度框架,它允许开发者创建和管理定时任务,从而实现应用程序的自动执行功能。在给定的压缩包文件中,我们有两个版本为1.6.0的Quartz JAR包:`quartz-1.6.0.jar`和`quartz-all...
Quartz是中国最流行的开源计划任务库之一,它允许开发者在Java应用程序中安排任务的执行。这个"quartz-all-1.6.0.jar"包包含了Quartz库的完整功能,适用于1.6.0版本。Quartz的核心特性是能够创建、触发和管理定时...
Quartz是Java领域的一款强大的开源任务调度框架,用于在应用程序中安排和执行周期性任务。在版本2.4.0-SNAPSHOT中,它提供了一个预发布版本的更新,这通常意味着开发者可以提前试用新功能和改进,但可能包含未解决的...
总结来说,Quartz是Java中强大的定时任务库,通过它我们可以方便地创建和管理复杂的任务调度,包括但不限于在特定时间点执行任务、按固定间隔重复执行、甚至在满足特定条件时触发任务。相比`java.util.Timer`,...
Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。它提供了丰富的API和灵活性,使得开发者可以方便地定义、安排和管理各种任务。版本1.8.6是Quartz的一个稳定版本,它包含了对数据库...
Quartz-Scheduler是一款开源的Java定时任务框架,它允许开发者精细地控制任务的执行时间,以及灵活地组织和管理大量的任务。Quartz的核心特性包括可持久化的作业存储、集群支持以及丰富的API,使得它成为企业级应用...
Quartz 是一个开源的工作调度框架,它允许程序员在 Java 应用程序中安排任务执行。在标题中提到的 "quartz-all-1.6.0" 版本,是 Quartz 框架的一个特定发行版,它包含了所有必要的组件和库,以便在 Java 环境下使用...
Quartz是开源的作业调度框架,它为Java应用程序提供了强大的定时功能。在Spring框架中集成Quartz,可以方便地创建和管理定时任务,使得开发者无需关注底层调度逻辑,专注于业务逻辑的实现。"quartz-2.1.6.zip"这个...
java-quartz-demo java-quartz-demo 可以实现添加任务 删除任务 定义任务执行时间,项目中的jar包已经存在于zip中,下载下来直接运行
通过以上介绍,我们可以看到Quartz 2.2.1在Java任务调度领域的强大功能和灵活性。开发者可以根据实际需求,利用其丰富的API和配置选项来创建、管理和监控各种定时任务,提升系统的自动化水平和效率。
Quartz是开源的作业调度框架,它允许Java开发者在应用程序中安排任务的执行。这个"quartz-2.1.7"版本是Quartz库的一个重要发布,专注于提供可靠的定时任务管理和执行。在这个版本中,Quartz进行了多方面的优化和改进...
Quartz 是一个开源的作业调度框架,用于在 Java 应用程序中实现复杂的时间调度任务。这个"quartz-all-1.6.0.jar"文件是 Quartz 的一个特定版本,即1.6.0版的全功能包。它包含了 Quartz 框架的所有组件和依赖,使得...
Quartz是一个开源的作业调度框架,它允许程序在预定的时间执行特定的任务,广泛应用于Java企业级应用中。在"quartz-1.6.0任务调试"中,我们需要理解Quartz的基本概念、配置以及如何进行任务的调试。 首先,Quartz的...
Quartz是一个开源的作业调度框架,它为Java应用程序提供了强大的定时任务管理能力。"quartz-all-1.6.0.jar"是Quartz库的一个版本,集成了所有必需的组件,使得开发者能够在项目中轻松引入并使用Quartz的功能。这个...
Quartz-2.2.1 任务调度框架在Java项目中的使用实例 Demo 在这个小Demo 中使用了Java 类的反射机制,通用的项目实例,高度抽象的实例。 在业务需求不是很复杂的情况下,完全可以减少因为使用Quartz任务调度框架的代码...
Quartz 是一个开源的作业调度框架,用于在 Java 应用程序中安排任务。它提供了丰富的 API 和配置选项,使得开发者能够轻松地实现定时任务的创建、管理和执行。标题中的 "quartz-2.2.2-distribution.rar" 指的是 ...
在Spring 2.0版本中,已经集成了Quartz,使得在Java应用中实现定时任务变得更加方便。 Quartz的核心概念包括Job(工作)、Trigger(触发器)和Calendar(日历)。Job是需要执行的任务,Trigger则是决定何时启动Job...
Quartz是Java领域的一款强大的开源任务调度框架,用于在应用程序中安排和执行任务。这个"quartz-2.1.5.tar.gz"压缩包包含了Quartz库的版本2.1.5,它提供了完整的源码、文档和其他相关资源,便于开发者理解和定制。 ...
总的来说,Quartz是一个强大且灵活的Java任务调度库,适用于各种需要定时或触发式任务执行的应用场景。无论是在大型企业级系统还是小型项目中,它都能提供可靠的后台工作管理能力,帮助开发者专注于业务逻辑,而不是...
Quartz是Java领域的一款强大的开源任务调度框架,用于在应用程序中执行定时和计划的任务。它的最新版本为2.2.3,提供了丰富的功能和灵活性,适用于各种规模的应用。这个压缩包"quartz-2.2.3.jar"包含了实现分时作业...