Java 石英作业不是';t正在运行,但石英表正在更新
我无法找到实际原因,但我的石英表正在更新,以便下一次点火时间和上一次点火时间,但作业未运行 石英。特性Java 石英作业不是';t正在运行,但石英表正在更新,java,oracle11g,quartz-scheduler,netbeans-7,Java,Oracle11g,Quartz Scheduler,Netbeans 7,我无法找到实际原因,但我的石英表正在更新,以便下一次点火时间和上一次点火时间,但作业未运行 石英。特性 org.quartz.scheduler.instanceName="MyScheduler" org.quartz.threadPool.class="org.quartz.simpl.SimpleThreadPool" org.quartz.threadPool.threadCount="4" org.quartz.threadPool.threadsInheritContextClass
org.quartz.scheduler.instanceName="MyScheduler"
org.quartz.threadPool.class="org.quartz.simpl.SimpleThreadPool"
org.quartz.threadPool.threadCount="4"
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread="true"
org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer="true"
org.quartz.jobStore.class="org.quartz.impl.jdbcjobstore.JobStoreTX"
org.quartz.jobStore.driverDelegateClass="org.quartz.impl.jdbcjobstore.StdJDBCDelegate"
org.quartz.jobStore.dataSource="tasksDataStore"
org.quartz.jobStore.tablePrefix="QRTZ_"
org.quartz.jobStore.misfireThreshold="60000"
org.quartz.jobStore.isClustered="false"
org.quartz.dataSource.tasksDataStore.driver="oracle.jdbc.driver.OracleDriver"
org.quartz.dataSource.tasksDataStore.URL="jdbc:oracle:thin:@localhost:1521/orcl"
org.quartz.dataSource.tasksDataStore.user="scott"
org.quartz.dataSource.tasksDataStore.password="tiger"
org.quartz.dataSource.tasksDataStore.maxConnections="20"
为调度器编写的代码
JobDetail job = null;
CronTrigger trigger = null;
Logger log = LoggerFactory.getLogger(CronTrigger.class);
System.out.println("------- Initializing -------------------");
// First we must get a reference to a scheduler
SchedulerFactory sf = new StdSchedulerFactory("/conf/quartz.properties");
Scheduler sched = sf.getScheduler();
try {
System.out.println("------- Scheduling Jobs ----------------");
job = newJob(SchedulerJob.class).withIdentity("job2", "group2").build();
trigger = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("0 0/5 * * * ?"))
.build();
Date ft = sched.scheduleJob(job, trigger);
// System.out.println(sched.getSchedulerName());
} catch (Exception e) {
System.out.println("------- Job Already Exist ----------------");
}
sched.start();
确保使用scheduler.start()启动计划程序
否则,quartz将保留作业数据,但不会响应已触发的触发器,也不会实际运行任何操作(待机模式)。很抱歉,没有在评论中回答,声誉问题。你能解决你的问题吗?这个问题可能来自许多因素:
- 作业在执行时可能失败
- 触发器侦听器可以否决该触发器
- 可以停止作业并报告其执行情况
检查这一点的一个简单方法是使用触发器侦听器和作业侦听器,并在Quartz中记录或调试触发。我使用的是
scheduler.start()
。但是当我在那里检查正在运行的作业时,我得到的调度程序状态为STANDBY
您可以发布调度程序初始化代码和quartz.properties吗?您还可以添加创建调度程序的代码吗?您是否尝试向SchedulerJob execute方法添加一些日志?我正在使用java代码打印当前日期和时间scheduler.start()。但是,当我在那里检查正在运行的作业时,我得到的调度程序状态是STANDBY