关于javaquartz调度中的缺火

6xfqseft  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(339)

我已经使用 cronSchedulermisfireInstruction 像下面这样

trigger = newTrigger().withIdentity("autoLockTrigger", "autoLockGroup").startNow()                 .withSchedule(cronSchedule(croneExpression).withMisfireHandlingInstructionFireAndProceed())
                    .forJob("autoLockJob","autoLockGroup")
                    .build();

我的财产如下

org.quartz.scheduler.instanceName =MyScheduler

# Configuring ThreadPool

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 1
org.quartz.threadPool.threadPriority = 9

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource = myDS 
org.quartz.jobStore.tablePrefix = QRTZ_

# org.quartz.dataSource.myDS.jndiURL = jdbc/vikas

org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.myDS.URL = jdbc:mysql://staging:3307/facao
org.quartz.dataSource.myDS.user = root
org.quartz.dataSource.myDS.password = toor
org.quartz.dataSource.myDS.maxConnections = 30

# org.quartz.jobStore.nonManagedTXDataSource = myDS

# to store data in string format (name-value pair)

org.quartz.jobStore.useProperties=true   

org.quartz.jobStore.misfireThreshold = 60000

在我的代码中,如果我在特定时间设置了一些触发器,并且服务器处于运行状态,那么调度程序将正常运行,但是如果服务器在调度程序应该运行的时间段内关闭,然后在一段时间后启动,那么调度程序应该运行错误的指令。但在我的情况下,失败的指令并不是一直在运行,而是运行了一段时间,所以我的目标并没有实现。请给出一些解决方案。先谢谢你。

9ceoxa92

9ceoxa921#

我不确定cron触发器,但对于简单的触发器是的,如果触发器的结束时间已经过去,那么提供的一些缺火指令将无法工作。有关更多信息,请参阅javadoc代码段。我猜cron触发器也是如此。所以,这完全取决于您使用的cron表达式。

相关问题