我使用maven和java注释(使用servlet 3)集成了quartz 2和spring 4,我也使用tomcat 7 maven插件来部署我的项目,我的石英配置类如下所示:
我的作业类定义如下:
然后我使用石英计划程序立即使用fire我的作业触发器,如下所示:
但我的问题是:当我用" job1"来调用fireNow方法时," mygroup"参数没有任何反应,我的job1不立即打电话,不在控制台打印任何东西,我也跟踪我注意到的数据库表 在运行fireNow方法后,将新行插入mysql中的qrtz_triggers表中:
答案 0 :(得分:1)
如果未将Quartz调度程序设置为自动启动。你需要明确地开始它。
scheduler.start();
如果Quartz调度程序启动成功,您应该在日志或控制台输出中看到类似如下信息。
[main] INFO org.quartz.core.QuartzScheduler - 调度程序元数据:Quartz Scheduler(v2.2.1)
' org.springframework.scheduling.quartz.SchedulerFactoryBean#0'使用instanceId' MyScheduler'
日程安排课程:' org.quartz.core.QuartzScheduler' - 在当地运行。
没有开始。
目前处于待机状态。
执行的工作数量:0
使用线程池' org.quartz.simpl.SimpleThreadPool' - 有10个线程。
使用job-store' org.quartz.simpl.RAMJobStore' - 不支持持久性。并没有聚集。
...
[主要] INFO org.quartz.core.QuartzScheduler - 开始
答案 1 :(得分:0)
最后我找到了我的问题的解决方案,在启用quartz log4j(在我的log4j.properties中添加log4j.logger.org.quartz = DEBUG)之后,我在控制台中看到了jdbc异常,与使用过时的quartz-query相关的异常。
我在我的POM中添加了石英2.2.1依赖,但是我使用石英sql查询2.1.7版本,石英jar和石英sql查询版本之间不匹配导致丢失一些像SCHED_TIME这样的表。