如何暂停石英调度器的工作?
问题描述:
嗨,我正在创建一个应用程序,执行基于cron表达式的类的方法。为此,我使用弹簧石英,在其中我必须在我的spring文件中配置所有这些东西,它工作正常,并且基于cron表达式执行作业,但是现在我想暂停基于java类的特定作业的下一次执行从用户界面选择用户。那么有没有办法做到这一点?如何暂停石英调度器的工作?
我可以得到所有正在运行的作业的详细信息吗?如果是这样,那么我可以过滤作业,并尝试暂停该作业下一次执行。
答
我得到了它使用的工作下面的代码的
stdScheduler是scheduleFactoryBean
String groupnames[] = stdScheduler.getJobGroupNames();
for (String groupName : groupnames) {
String[] jobNames = stdScheduler.getJobNames(groupName);
for (String jobName : jobNames) {
if (jobName.equals("jobName")) {
stdScheduler.pauseJob(jobName, groupName);
}
}
}
答
我们可以使用stdScheduler.pauseJob(JobKey jobKey)方法,以减少在代码中提到的回路数以上
+0
我们只有jobName可用,所以我认为我们必须遍历循环。有没有其他方法? –
什么是你想跳过的商业条件?有没有?如果是,然后将该条件建模为工作逻辑(如果(条件)然后运行其他跳过...) – blob
谢谢blob的回复。我正在通过基于cronExpression的每个星期一或每分钟的cron表达式进行调度,如果我只想下一次跳过执行,那么我们该怎么做呢? –
只需从调度程序中删除作业并在用户重新启用它时读取它? – ZeissS