按顺序执行预定作业 spring boot

问题描述 投票:0回答:0

我正在尝试使用石英调度程序安排工作。该作业每天早上 7 点执行。工作是按顺序执行 python 程序列表(超过 1 个)。

如果第一个程序失败,那么接下来任何其他程序都不会被执行。

对于一个程序,它有效。但是如何实现程序列表

以下是工作安排

private void scheduleJob(JobDataMap jobData, String cronExpression, Class<? extends Job> jobClass, String jobNamePrefix) throws BaseException {
  var jobDetail = newJob()
          .ofType(jobClass)
          .storeDurably()
          .withIdentity(JobKey.jobKey(jobNamePrefix))
          .setJobData(jobData)
          .withDescription(String.format("Scheduled job: '%s'", jobNamePrefix))
          .build();

  var trigger = newTrigger()
          .withIdentity("T_" + jobNamePrefix)
          .forJob(JobKey.jobKey(jobNamePrefix))
          .startNow()
          .withSchedule(CronScheduleBuilder
                  .cronSchedule(cronExpression)
                  .inTimeZone(TimeZone.getTimeZone(ZoneId.of(Constants.DEFAULT_TIMEZONE)))
                  .withMisfireHandlingInstructionDoNothing())
          .endAt(Date.from(Instant.parse(Constants.DEFAULT_END_TIME)))
          .build();

  try {
          Date scheduleJobDate = scheduler.scheduleJob(jobDetail, trigger);
          log.info("Job scheduled successfully: '{}' @ '{}'", jobNamePrefix, scheduleJobDate);
  } catch (SchedulerException e) {
          log.error("Error while scheduling job : '{}'", jobNamePrefix);
          throw new BaseException(String.format("Error while scheduling job '%s'", jobNamePrefix), e);
  }
}

如果第一个程序失败,那么下一个程序将不会执行的方法是什么?

java spring-boot quartz-scheduler
© www.soinside.com 2019 - 2024. All rights reserved.