Java 在一个随机的时间间隔内运行程序

Java 在一个随机的时间间隔内运行程序,java,time,cron,automation,Java,Time,Cron,Automation,我在找一种能帮我解决主题问题的仪器。 我有一段休息时间(比如说,一个小时,从8点到9点)。我需要在一分钟内随机运行一个(java)程序。 Cron看起来是一个合适的工具,但我没有看到随机函数。我很确定有一种工具是聪明人用来做这件事的,所以我想在这个培训项目开发过程中学习它。 我还想知道,哪一种是更好的生产实践:通过(例如)ScheduledExecutorService编写自定义计划,还是使用诸如cron之类的外部工具?crontab语法在8到9之间每分钟运行一个脚本: * 8 * * * yo

我在找一种能帮我解决主题问题的仪器。 我有一段休息时间(比如说,一个小时,从8点到9点)。我需要在一分钟内随机运行一个(java)程序。 Cron看起来是一个合适的工具,但我没有看到随机函数。我很确定有一种工具是聪明人用来做这件事的,所以我想在这个培训项目开发过程中学习它。
我还想知道,哪一种是更好的生产实践:通过(例如)ScheduledExecutorService编写自定义计划,还是使用诸如cron之类的外部工具?

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
}

在8:00am之后的随机延迟后,它将在8点到9点之间运行一次

在Java中执行随机操作时,您介意使用Cron计划它吗?不,我想将它安排在某个地方,以随机时间间隔每天运行一次程序。这将在8点到9点之间每分钟随机运行一次。我想OP想在8点到9点之间运行一次。aa333,你说得对。这正是我需要的。Conffusion,如果我没有正确解释,我很抱歉。如果这有效,这对我来说是最好的解决方案。哇,这看起来不错!我会在早上试一试。无论如何,非常感谢!
00 8 * * * sleep $[RANDOM\%90]m; cmdHere