groovy中的睡眠循环1小时

groovy中的睡眠循环1小时,groovy,sleep,Groovy,Sleep,嘿,习惯groovy了,我想在我的groovy脚本中有一个循环,比如do while循环,它每小时或2次运行一次,直到满足循环中的某个条件(variable=something)。所以我找到了睡眠步骤,但我想知道是否可以睡这么长时间。sleep函数不会弄糟吧?首先,groovy中没有do{}while()构造。其次,最好使用调度程序,例如运行cron任务。睡眠功能不会出现问题。但这不是你最大的问题 如果您的脚本所做的只是睡眠,那么最好有一个类似于启动脚本的调度器。这种方法更简单、更具弹性,它减少

嘿,习惯groovy了,我想在我的groovy脚本中有一个循环,比如do while循环,它每小时或2次运行一次,直到满足循环中的某个条件(variable=something)。所以我找到了睡眠步骤,但我想知道是否可以睡这么长时间。sleep函数不会弄糟吧?

首先,groovy中没有
do{}while()
构造。其次,最好使用调度程序,例如运行cron任务。

睡眠功能不会出现问题。但这不是你最大的问题

如果您的脚本所做的只是睡眠,那么最好有一个类似于启动脚本的调度器。这种方法更简单、更具弹性,它减少了脚本积累垃圾、内存泄漏、JVM被另一个进程杀死或因编程错误而陷入糟糕状态的机会。Cron是可靠的,这样出错的可能性更小。启动JVM的速度不快,但如果您的时间框架是在几个小时内,那么应该不会有问题

另一个可能的问题是脚本唤醒的时间可能会漂移。操作系统调度程序没有义务在确切的时间点唤醒线程。脚本运行时,服务器上的时间也可以更改。使用Cron将使脚本的运行时间更加可预测

另一方面,对于调度器,如果一个进程的运行时间长于下一次运行的时间,则该进程的多个实例可能同时存在。您可能希望让脚本创建一个锁文件,并在完成后将其删除,检查该文件是否已经存在,以告知另一个实例是否仍在运行