【问题标题】:Is there a way to run delayed or scheduled task with GPars?有没有办法使用 GPars 运行延迟或计划的任务?
【发布时间】:2015-05-19 03:16:50
【问题描述】:

我正在 GPars 库之上构建我的并发应用程序。 它的底层包含一个线程池,所以我想通过这个池来解决所有与并发相关的任务。

我需要以一定的延迟(例如 30 秒)运行任务。我也想定期运行一些任务。

有什么方法可以用 GPars 实现这些东西吗?

【问题讨论】:

    标签: groovy scheduled-tasks gpars


    【解决方案1】:

    Thread.sleep 用于延迟,Quartz 用于调度呢?我知道有明显的选择,但我认为使用它们没有任何问题。

    我的意思是将 GPar 与一些更高阶的闭包混合在一起,例如:

    @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)}
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 2015-05-19
      • 1970-01-01
      • 2012-11-21
      • 2020-02-07
      • 1970-01-01
      相关资源
      最近更新 更多