·创建并运行
Quartz Scheduler
当调度器起来之后,你可以利用它做很多事情或者获取到它的许多信息。例如,你也许需要安排一些 Job
或者改变又安排在调度器上
Job
的执行次数。你也许需要让调度器处于暂停模式,接着再次启动它以便重新执行在其上安排的作业。当调度器处于暂停模式时,不执行任何作业,即使是作业到了它所期待的执行时间。
public class SimpleScheduler {
static Log logger = LogFactory.getLog(SimpleScheduler.class);
public static void main(String[] args) {
SimpleScheduler simple = new SimpleScheduler();
simple.startScheduler();
}
public void startScheduler() {
Scheduler scheduler = null;
try {
// Get a Scheduler instance from the Factory
scheduler = StdSchedulerFactory.getDefaultScheduler();
// Start the scheduler
scheduler.start();
logger.info("Scheduler started at " + new Date());
} catch (SchedulerException ex) {
// deal with any exceptions
logger.error(ex);
}
}
private void modifyScheduler(Scheduler scheduler) {
try {
if (!scheduler.isInStandbyMode()) {
// pause the scheduler
scheduler.standby();
}
// Do something interesting here
// and then restart it
scheduler.start();
} catch (SchedulerException ex) {
logger.error(ex);
}
}
}
·编程式安排一个
Quartz Job
所有的要 Quartz
来执行的作业必须通过调度器来注册。大多情况下,这会在调度器启动前做好。
因为每一个 Job
都必须用
Scheduler
来注册,所以先定义一个
JobDetail
,并关联到这个
Scheduler
实例。
public class JobScheduler {
static Log logger = LogFactory.getLog(JobScheduler.class);
public static void main(String[] args) {
JobScheduler example = new JobScheduler();
try {
// Create a Scheduler and schedule the Job
Scheduler scheduler = example.createScheduler();
example.scheduleJob(scheduler);
// Start the Scheduler running
scheduler.start();
logger.info( "Scheduler started at " + new Date());
} catch (SchedulerException ex) {
logger.error(ex);
}
}
/*
* return an instance of the Scheduler from the factory
*/
public Scheduler createScheduler() throws SchedulerException {
return StdSchedulerFactory.getDefaultScheduler();
}
// Create and Schedule a ScanDirectoryJob with the Scheduler
private void scheduleJob(Scheduler scheduler)
throws SchedulerException {
// Create a JobDetail for the Job
JobDetail jobDetail = new JobDetail("ScanDirectory",Scheduler.DEFAULT_GROUP,ScanDirectoryJob.class);
// Configure the directory to scan
jobDetail.getJobDataMap().put("SCAN_DIR","D:\\test");
// Create a trigger that fires every 10 seconds, forever
Trigger trigger = TriggerUtils.makeSecondlyTrigger(10);
trigger.setName("scanTrigger");
// Start the trigger firing from now
trigger.setStartTime(new Date());
// Associate the trigger with the job in the scheduler
scheduler.scheduleJob(jobDetail, trigger);
}
}
代码首先调用
createScheduler()
方法从 Scheduler
工厂获取一个
Scheduler
的实例。得到
Scheduler
实例之后,把它传递给
schedulerJob()
方法,由它把 Job
同
Scheduler
进行关联。
Trigger 的责任就是触发一个
Job
去执行。当用
Scheduler
注册一个
Job
的时候要创建一个
Trigger
与这个
Job
相关联。
Quartz
提供了四种类型的
Trigger
,但其中两种是最为常用的,它们就是在下面章节中要用到的
SimpleTrigger
和
CronTrigger
.为更简单的使用 Trigger
,
Quartz
包含了一个工具类,叫做
org.quartz.TriggerUtils
.
TriggerUtils
提供了许多便捷的方法简化了构造和配置 trigger.
本章的例子中有用的就是
TriggerUtils
类;
SimpleTrigger
和
CronTrigger
会在后面章节中用到。
调用了
TriggerUtils
的方法
makeSecondlyTrigger()
来创建一个每10
秒种激发一次的
trigger(
实际是由
TriggerUtils
生成了一个
SimpleTrigger
实例,但是我们的代码并不想知道这些)
。
分享到:
相关推荐
该压缩包内包含两个quartz的jar包, 分别是quartz-1.6.0.jar和quartz-all-1.6.0.jar
赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...
赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...
quartz quartz-1.8.6 dbTables quartz动态任务调度需要的数据库脚本。
quartz-2.4.0-SNAPSHOT-distribution.tar.gz包,解压后可查看里面的simple
quartz-all-1.6.3.jar
quartz-2.2.1 最新包
quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar
quartz-2.2.3版本的quartz初始化sql语句
quartz-all-2.1.5
quartz:是一个任务调度框架,通过触发器设置作业的定时运行规则,来执行定时任务。相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细。把一系列任务自动安置到一...
赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...
quartz-jobs-2.2.1-sources.jar 好东西,不解释
quartz-1.8.4.jar
quartz-jobs-2.3.0.jar
quartz-2.1.1 的所有jar包 quartz-2.1.1.jar quartz-all-2.1.1.jar quartz-backward-compat-2.1.1.jar quartz-commonj-2.1.1.jar quartz-examples-2.1.1.jar quartz-jboss-2.1.1.jar quartz-oracle-2.1.1.jar quartz...
quartz-all-1.8.4.jar
quartz-jboss-1.8.6.jar quartz集群
赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...
quartz-all-1.8.6.jar