我使用最新版本的Quartz-2.2.1和HSQL-2.3.2。我在db中保存后执行作业时遇到问题。使用mySql连接的相同代码有效 - 该作业在存储后自动启动。使用HSQL它根本不起作用,只存储在db。
中MyJOB.class
public MyJob() {
this.myJob = newJob(SimpleQuartzJob.class).withIdentity("myJob",
"group").build();
}
MyTrigger.class
private Trigger trigger;
public MyTrigger() {
trigger = newTrigger()
.withIdentity("myTrigger", "group")
.startNow()
.withSchedule(
simpleSchedule().withIntervalInSeconds(1)
.repeatForever()).build();
}
SimpleQuatzJob.class
public void execute(JobExecutionContext context)
throws JobExecutionException {
try {
System.out.println("=)");
} catch (Exception e) {
e.printStackTrace();
}
}
main()的
SchedulerFactory sf = new StdSchedulerFactory();
final Scheduler sd = sf.getScheduler();
sd.start();
MyJob job = new MyJob();
MyTrigger trigger = new MyTrigger();
sd.scheduleJob(job.getMyJob(), trigger.getMyTrigger());
属性:
org.quartz.scheduler.instanceName = test_scheduler
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 4
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.tablePrefix = qrtz _
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.isClustered = false
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate
org.quartz.jobStore.dataSource = myDS
org.quartz.dataSource.myDS.driver = org.hsqldb.jdbc.JDBCDriver
org.quartz.dataSource.myDS.URL = jdbc:hsqldb:file:D:\ files \ mydatabase \ testdb
org.quartz.dataSource.myDS.user = sa
org.quartz.dataSource.myDS.password =
org.quartz.dataSource.myDS.shutdown =真
org.quartz.dataSource.myDS.maxConnections = 50
与服务器模式相同:
org.quartz.dataSource.myDS.URL = jdbc:hsqldb:hsql://localhost:9001/
有人可以告诉我这段代码有什么问题,因为我已经好几天都无法让它工作了。提前谢谢。