bil*_*ill 2 java cron quartz-scheduler
我想知道是否有一个函数/方法可以创建在随机时间触发的作业。我的意思是,如果我设置一个 cron 计划在每周一上午 10 点触发并给定一个时间间隔(假设为 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();
Run Code Online (Sandbox Code Playgroud)
如果我有一个以分钟为单位的特定范围的变量,我可以将其设置为随机触发吗?我的意思是,不仅仅是获取 cron 计划字符串并重新修改它,而是使用一种方法每次触发事件,基于随机范围,因此第一个星期一可能在 10.01 触发,第二个星期一可能在 9.46 触发,依此类推。
提前致谢。
要在每天凌晨 1.00 到 1.30 之间的某个时间触发计划,您可以尝试以下操作:
schedule.setCronSchedule(String.format("0 %d 1am * * ?", random.nextInt(30)));
Run Code Online (Sandbox Code Playgroud)
不幸的是,Quartz 中没有内置任何东西,甚至 Unix cron 中也没有内置任何东西。从现在开始,随机性每天都是一样的,除非你定期重置时间表。但也许这对您的情况来说不是问题。
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |