java - Quartz调度器-时间间隔

标签 java quartz-scheduler scheduler crontrigger

我正在使用quartz调度程序来调度作业。我有一个情况,我想每天晚上(9:00 PM)到第二天早上(06:00 AM)执行一个作业。我怎样才能实现这个目标。目前我正在像这样初始化触发器

      Trigger trigger2 = newTrigger()
    .withIdentity("trigger1", "group1")
    .startNow()
    .withSchedule(simpleSchedule()
            .withIntervalInSeconds(10)
            .repeatForever())            
    .build();

我需要进行哪些修改才能满足要求?

最佳答案

如果您选择了Quartz CronExpression 你可以使用这样的表达式 0 * 21-23,0-5 ? * * 每天从 00:00 AM 到 05:59 AM 以及从 9:00 PM 到 23:59 PM 每分钟解雇一个作业,因此:

trigger = newTrigger()
    .withIdentity("trigger7", "group1")
    .withSchedule(cronSchedule("0 * 21-23,0-5 ? * *"))
    .build();

记得导入import static org.quartz.CronScheduleBuilder.cronSchedule

频率(在此示例中为每分钟)取决于您的要求。

关于java - Quartz调度器-时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14208056/

相关文章:

unit-testing - 如何从我的单元测试中触发 Quartz Cronjob

linux - Linux 中的任务调度程序和 CPU 隔离

dependency-injection - 我可以在 quartz 调度程序作业中使用 CDI 注入(inject)吗?

JavaFX 应用程序出现在 Windows 任务管理器中的 javaw.exe 下。我怎样才能让它显示为一个独立的应用程序

java - android中如何显示已安装的应用程序?

java - jersey web 服务 json utf-8 编码

JavaScript API 将 cron 表达式转换为人类可读的字符串

linux - CFS中vruntime是什么概念

javascript - Rxjs:你想在什么场景下使用调度器

java - 不使用 getter 和 setter 时的文档