我正在GPars库上构建并发应用程序。 它包含一个线程池,所以我想通过这个池来解决所有与并发相关的任务。
我需要以一定的延迟(例如30秒)运行任务。我也想定期运行一些任务。
有没有办法用GPars实现这些功能?
答案 0 :(得分:0)
Thread.sleep
延迟和Quartz进行日程安排怎么样?我知道有明显的选择,但我没有看到使用它们有什么问题。
我的意思是将GPars与一些更高阶的闭包混合,例如:
@Grab(group='org.codehaus.gpars', module='gpars', version='1.2.1')
def delayDecorator = {closure, delay ->
return {params ->
Thread.sleep (delay)
closure.call (params)
}
}
groovyx.gpars.GParsPool.withPool() {
def closures = [{println it},{println it + 1}], delay = 1000
closures.collect(delayDecorator.rcurry(delay)).eachParallel {it (1)}
}