我正在寻找一种可以帮助我解决主题问题的工具。 我有一个间隔(比如说,一小时.8到9)。我需要在其中随机运行一个(java)程序。 Cron看起来像一个合适的工具,但我看不到随机功能。我很确定智能人员正在使用这种仪器,所以我想在这个培训项目开发过程中学习它。 我也想知道,哪一个是更好的生产实践:通过(例如)ScheduledExecutorService或使用像cron这样的外部工具编写自定义计划?
答案 0 :(得分:2)
00 8 * * * sleep $[RANDOM\%90]m; cmdHere
在上午8:00之后的随机延迟之后,这将在8到9之间运行一次
答案 1 :(得分:0)
crontab语法,每分钟在8到9之间运行一个脚本:
* 8 * * * yourscript.sh
要在一小时内执行一次:
0 8 * * * yourscript.sh
这将始终在8:00开始。我想我更了解你的问题,但我不明白为什么它必须在一个随机的时间,我不认为这在cron中是可能的。 您可以使用以下部分启动java main方法:
public static void main(String[] args) {
int waitTime=new Random().nextInt(60);
Thread.sleep(waitTime*60*1000); // sleep expects milliseconds
// continue real main implementation
}