如何暂停石英调度器的工作?

问题描述:

嗨,我正在创建一个应用程序,执行基于cron表达式的类的方法。为此,我使用弹簧石英,在其中我必须在我的spring文件中配置所有这些东西,它工作正常,并且基于cron表达式执行作业,但是现在我想暂停基于java类的特定作业的下一次执行从用户界面选择用户。那么有没有办法做到这一点?如何暂停石英调度器的工作?

我可以得到所有正在运行的作业的详细信息吗?如果是这样,那么我可以过滤作业,并尝试暂停该作业下一次执行。

+0

什么是你想跳过的商业条件?有没有?如果是,然后将该条件建模为工作逻辑(如果(条件)然后运行其他跳过...) – blob

+0

谢谢blob的回复。我正在通过基于cronExpression的每个星期一或每分钟的cron表达式进行调度,如果我只想下一次跳过执行,那么我们该怎么做呢? –

+0

只需从调度程序中删除作业并在用户重新启用它时读取它? – ZeissS

我得到了它使用的工作下面的代码的

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); 
      } 
    } 
}   

注入您的SchedulerFactoryBean。使用它的getScheduler方法来获得石英Scheduler并使用rescheduleJob或石英API的其他方法来执行您的任务。

我们可以使用stdScheduler.pauseJob(JobKey jobKey)方法,以减少在代码中提到的回路数以上

+0

我们只有jobName可用,所以我认为我们必须遍历循环。有没有其他方法? –