如何在groovy中执行以下操作:
while (somethingIsntReady || now.isAfter(before + 5 minutes)) {
sleep(1000)
}
现在我做这样的事情:
i = 1
while (!finishedFile.exists() && i in 1..300) {
sleep(1000)
i++
}
这在groovy中似乎不对,因为它只是我在java中的方式。
答案 0 :(得分:2)
您可以将TimeCategory用于这些类型的日期表达式。下面是一个示例以及另一个existsUntil
方法,该方法已添加到File类中:
import groovy.time.*
File.metaClass.existsUntil { timeout ->
boolean result;
while (!(result = delegate.exists()) && new Date().before(timeout)) {
sleep(1000)
}
return result
}
use( TimeCategory ) {
finishedFile.existsUntil(30.seconds.from.now)
}
答案 1 :(得分:1)
这样的东西?
def complete = false
use( groovy.time.TimeCategory ) {
def end = new Date() + 5.seconds
while( !complete && new Date() < end ) {
sleep( 1000 )
}
}