修改系统时间 quartz无法执行
时间: 2023-10-07 15:12:18 浏览: 119
Quartz定时任务图形界面的系统
可能是因为Quartz的调度器(Scheduler)依赖于系统时间来进行任务的调度,如果系统时间被修改,Quartz就会出现无法执行的问题。为了解决这个问题,可以考虑以下两种方法:
1. 使用NTP协议对系统时间进行同步,确保系统时间的准确性。
2. 在Quartz配置文件中增加如下配置,让其使用系统时间的原子性操作来解决时间被篡改的问题:
```
org.quartz.scheduler.skipUpdateCheck=true
org.quartz.scheduler.instanceId=AUTO
org.quartz.jobStore.misfireThreshold=60000
org.quartz.jobStore.useProperties=true
org.quartz.jobStore.dataSource=myDS
org.quartz.jobStore.tablePrefix=QRTZ_
org.quartz.jobStore.isClustered=false
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=10
org.quartz.threadPool.threadPriority=5
```
同时,还需要在Quartz的调度器初始化时,设置为使用系统时间的原子性操作。例如:
```
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
scheduler.start();
```
这样就可以保证Quartz在系统时间被修改的情况下,仍能够正常执行任务。
阅读全文