要将任务调度数据保存到中,就必须使用org.quartz.impl.jdbcjobstore.JobStoreTX代替原来的org.quartz.simpl.RAMJobStore并提供相应的配置信息。首先①处指定了Quartz表的前缀,在②处定义了一个数据源,在③处具体定义这个数据源的连接信息。quartz jdk15
你必须事先在相应的中创建Quartz的数据表(共8张),在Quartz的完整发布包的docs/dbTables目录下拥有对应不同的SQL脚本。
查询中的运行信息
任务的现场保存对于上层的Quartz程序来说是完全透明的,我们在src目录下编写一个如上代码所示的quartz.properties文件后,重新运行如下代码示例的程序,在表中将可以看到对应的持久化信息。当调度程序运行过程中途停止后,任务调度的现场数据将记录在数据表中,在系统重启时就可以在此基础上继续进行任务的调度。
package com.lxq.quartz.test;
import java.util.Date;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class SimpleTriggerRunner
{
public static void main(String args[])
{
try
{
JobDetail jobDetail = new JobDetail("job1_1", "jGroup1", BaseJob.class);
SimpleTrigger Trigger = new SimpleTrigger("trigger1_1", "tgroup1");
Trigger.setStartTime(new Date());
Trigger.setRepeatInterval(2000);
Trigger.setRepeatCount(100);
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.scheduleJob(jobDetail, Trigger);
scheduler.start();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}package com.lxq.quartz.test;
import java.util.Date;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
public class JDBCJobStoreRunner
{
public static void main(String args[])
{
try
{
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//获取调度器中所有的触发器组
String[] triggerGroups = scheduler.getTriggerGroupNames();
//重新恢复在tgroup1组中,名为trigger1_1触发器的运行
for (int i = 0; i < triggerGroups.length; i++)
{
String[] triggers = scheduler.getTriggerNames(triggerGroups[i]);
for (int j = 0; j < triggers.length; j++)
{
Trigger tg = scheduler.getTrigger(triggers[j], triggerGroups[i]);
if (tg instanceof SimpleTrigger && tg.getFullName().equals("tgroup1.trigger1_1"))//根据名称判断
{
/*恢复运行public Date rescheduleJob(String triggerName, String groupName, Trigger newTrigger){}*/
scheduler.rescheduleJob(triggers[j], triggerGroups[i], tg);
}
}
}
scheduler.start();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-44264-7.html
完全正确
rio其实很好喝年初开始接触喝了一个多月之后就开始断货之后再买到的就不是rio了