-
首先需要先建立一个实际的事物,即你想要干什么,比如说输出aaa三个字母。它怎么样被调度以后再说,但是先把输出三个字母的类建立。
1234567891011121314package
scheduler;
import
org.quartz.Job;
import
org.quartz.JobExecutionContext;
import
org.quartz.JobExecutionException;
public
class
myJob
implements
Job{
@Override
public
void
execute(JobExecutionContext arg0)
throws
JobExecutionException {
System.out.println(
"aaa"
);
}
}
2.这是任务调度的代码,下面会有仔细的讲解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package scheduler;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.CronScheduleBuilder.cronSchedule;
public class simpleTriggerRunner {
private static String JOB_GROUP_NAME = "EXTJWEB_JOBGROUP_NAME" ;
private static String TRIGGER_GROUP_NAME = "EXTJWEB_TRIGGERGROUP_NAME" ;
/**
* @param args
*/
public static void main(String[] args) {
try {
//得到默认调度器
Scheduler sc=StdSchedulerFactory.getDefaultScheduler();
//启动调度器
sc.start();
//新建一个jobdetail, 参数分别是id和name,这个在实际项目的时候很有用,注意此处的语法
JobDetail jd=newJob(myJob. class ).withIdentity( "zhoujie" ,JOB_GROUP_NAME).build();
//新建一个trigger,参数分别是id和name,注意此处语法
Trigger trigger1=(SimpleTrigger)newTrigger().withIdentity( "zhoujie" ,TRIGGER_GROUP_NAME).build();
//cron表达式,每隔5s执行一次
String cron = "0/5 * * * * ?" ;
//注意此处语法
Trigger trigger2=newTrigger().withIdentity( "zhoujie" ,TRIGGER_GROUP_NAME).withSchedule(cronSchedule(cron)).build();
//scheduler开始调度
sc.scheduleJob(jd, trigger2);
} catch (SchedulerException e) {
e.printStackTrace();
}
}
} |
3.讲解:
开始执行,会出现这样的错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
出现这个问题说明少了jar包,导入slf4j-api-1.7.5.jar和slf4j-log4j12-1.7.5.jar依然报错,错误为:
Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: org/apache/log4j/Level
查阅资料,发现缺少log4j.jar
运行就不会出现错误。
4. line:25 如果不启动的话将不会进行任务调度
line:27 此处newJob(class)需要静态导入import static org.quartz.JobBuilder.newJob;
line:29 此处newTrigger()需要静态导入import static org.quartz.TriggerBuilder.newTrigger;
line:33 由于此处使用了cron表达式多了一个.withSchedule(cronSchedule(cron)),需要静态导入import static org.quartz.CronScheduleBuilder.cronSchedule;
5.最后开始调度 sc.scheduleJob(jd, trigger2); 将 jobDetail和trigger当做参数传入变可以每5s进行一次调度
相关推荐
在 myeclipse6.0.1下调试成功可直接运行的spring的quartz的例子,很适合刚接触quartz调度学习。
定时器框架学习资料,入门手册,新手专用!帮你快速入门开发搭建自己的定时器框架环境
quartz入门共3页.pdf.zip
Quartz入门Demo,栗子全,注释详细。还有Spring结合的demo,一共两个Demo外加Quartz开发资料,绝对超值。欢迎大家共同交流。
Quartz入门教程,快如上手,讲解明了易懂
Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群...
Spring集成quartz跑定时任务实例 自己写的例子并为实现job 有测试的主函数,请参考...springCon.quartz文件夹下 为对上诉博客理解透彻 结合spring看其配置的相关信息 就可以明白。
Quartz入门案例,QuartzManager管理器,简单任务调度案例和说明。
NULL 博文链接:https://aiien007.iteye.com/blog/2105833
简单介绍quartz用法,介绍quartz用法步骤
Quartz框架快速入门Quartz框架快速入门
Quartz开源框架的使用手册,帮助开发者很好的了解Quartz的开发流程以及Job调度的类型,特别是Quartz在Job的部署,存储,调度上的处理,有状态Job和无状态Job的操作,适合初学者进行学习了解
Quartz定时器从入门到进阶,详细介绍Quartz定时器API和使用示例。
Quartz定时器的必须包,具体使用方法请见我的资源中的《Quartz入门》
一个简单的调度器案例,和一些官方源码,quartz入门
Quartz入门和Quartz开发指南