gpt4 book ai didi

quartz-scheduler - JAVA Quartz - 如果上一个仍在运行,则跳过作业并等待下一个计划时间

转载 作者:行者123 更新时间:2023-12-04 08:33:15 25 4
gpt4 key购买 nike

我有一个使用 Quartz 2.2.3 的 Java 解决方案,而我所拥有的是:

  • 我的工作类(class)被批注@DisallowConcurrentExecution为避免并发,同一作业每次只能运行一次(OK)
  • 它是一个 CRON,每 1 小时运行一次 (OK)
  • 时间是下午 1 点,作业开始运行 (OK)
  • 现在时间是下午2点,之前的工作还没有完成(OK)
  • 由于类被注释,下一个工作将不会开始(它很棒 - 好的)
  • 现在时间是 2h:15min,第一个工作刚刚完成(OK)
  • 现在的问题,因为第二个工作没有在下午 2 点开始,但现在第一个刚刚完成,第二个将开始。

  • 这是我的问题,我不想让第二个工作等待,如果前一个没有完成,我想跳过第二个,时间到了 3pm作业可以运行。阅读 javadoc 我添加了 withMisfireHandlingInstructionDoNothing()但它没有用。

    我想我做错了什么或遗漏了什么。

    我的代码:
    Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

    JobDetail job = JobBuilder.newJob(TestCronService.class).withIdentity("testA","testB").build();


    CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("testA","testB")
    .withSchedule(CronScheduleBuilder.cronSchedule("0 0 * * * ?")
    .withMisfireHandlingInstructionDoNothing())
    .build();


    scheduler.scheduleJob(job, trigger);
    scheduler.start();

    最佳答案

    更改功能:

    withMisfireHandlingInstructionDoNothing() 


    withMisfireHandlingInstructionNextWithRemainingCount()

    关于quartz-scheduler - JAVA Quartz - 如果上一个仍在运行,则跳过作业并等待下一个计划时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40053766/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com