【问题标题】:Multiple scheduler with Grails Quartz plugin带有 Grails Quartz 插件的多调度器
【发布时间】:2018-02-12 09:40:32
【问题描述】:

我有一个使用 Grails Quartz 插件的应用程序。我需要有两个作业才能运行多个实例,但对每个作业使用的线程数有单独的限制。据我了解,我需要单独的线程池,这可以通过使用单独的调度程序来实现。但是,我不知道如何使用 Quartz 插件创建多个调度程序。

【问题讨论】:

  • 当您的意思是运行多个实例时,您是指使用不同的触发器多次启动作业吗?
  • 是的,我提到的两个作业同时触发了多次。

标签: grails quartz-scheduler


【解决方案1】:

假设您想使用不同的触发器多次启动作业。这对我有用。

class MyJob {

    static triggers = {
        cron name: 'trigger1', cronExpression: "0 30 12 ? * WED"
        cron name: 'trigger2', cronExpression: "0 30 12 ? * SAT"
    }

    def execute() {

        // execute task, do your thing here
        println "Job executed"
    }
}

最后,关于并发任务。 这是来自插件页面:

默认情况下,作业以并发方式执行,因此新作业 即使先前执行相同的作业也可以开始执行 仍在运行。

【讨论】:

    【解决方案2】:

    Quartz 插件 2.0.13

    据官方documentation

    每个作业允许多个触发器。

    例如,

    class MyJob {
      static triggers = {
        simple name:'simpleTrigger', startDelay:10000, repeatInterval: 30000, repeatCount: 10
        cron name:'cronTrigger', startDelay:10000, cronExpression: '0/6 * 15 * * ?'
        custom name:'customTrigger', triggerClass:MyTriggerClass, myParam:myValue, myAnotherParam:myAnotherValue
      }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-13
      • 2014-01-07
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      相关资源
      最近更新 更多