石英调度程序 cron 触发器



我想知道是否有一个函数/方法来创建随机时间触发的作业。我的意思是,如果我将 cron 计划设置为每周一上午 10:00 触发并给出一个时间间隔,比如说 30 分钟,触发器将始终从 9.30 ~ 10.30 关闭。例如,这是 cron 计划。

schedule.setCronSchedule("0 0 10 ? * MON");
trigger = newTrigger()
                        .withIdentity(triggerId)
                        .startNow() // <~~~~~~~~~~~~~~~ ???
                        .withDescription(schedule.getCronSchedule())
                        .withSchedule(cronSchedule(schedule.getCronSchedule())).build();

如果我有一个以分钟为单位的特定范围的变量,我可以将其设置为随机触发吗?我的意思是不仅获取 cron 调度字符串并重新修改它,而且使用一种方法每次都根据随机范围触发事件,因此第一个星期一可能在 10.01 触发第二个星期一可能在 9.46 触发等等。

提前谢谢。

要在每天凌晨 1:00 到凌晨 1:30 之间的某个时间触发时间表,您可以尝试以下操作:

schedule.setCronSchedule(String.format("0 %d 1am * * ?", random.nextInt(30)));

不幸的是,Quartz中没有内置任何东西,甚至没有Unix cron。从现在开始,随机性每天都是一样的,除非你定期重置时间表。但也许这对你的情况来说不是问题。

最新更新