以间隔的随机分钟运行程序

时间:2014-07-31 22:25:23

标签: java time cron automation

我正在寻找一种可以帮助我解决主题问题的工具。 我有一个间隔(比如说,一小时.8到9)。我需要在其中随机运行一个(java)程序。 Cron看起来像一个合适的工具,但我看不到随机功能。我很确定智能人员正在使用这种仪器,所以我想在这个培训项目开发过程中学习它。 我也想知道,哪一个是更好的生产实践:通过(例如)ScheduledExecutorService或使用像cron这样的外部工具编写自定义计划?

2 个答案:

答案 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
}