【问题标题】:Using Quartz Plugin in Grails在 Grails 中使用 Quartz 插件
【发布时间】:2014-05-30 23:21:29
【问题描述】:

我是在 Grails 中使用 Quartz 插件的新手,想运行简单的应用程序。我使用了以下代码(表单石英插件文档),但它只运行一次。任何想法?我应该设置什么吗?

谢谢

class MyJob {
    static triggers = { simple name: 'mySimpleTrigger', startDelay: 60000, repeatInterval: 1000 }
    def group = "MyGroup"

    def execute(){
    println "Running Job!"
  }
}

【问题讨论】:

  • 更多信息,请。类在 /grails-app/jobs 中吗?并将 startDelay 设置为 10000 以防止等待 1 分钟。
  • 是的,它在 /grails-app/jobs 中,quartz 插件是 0.4.2(我应该使用这个版本)
  • 我只能说,你不应该设置任何东西。
  • 谢谢!但是他们的解决方案并没有解决我的问题

标签: grails quartz-scheduler


【解决方案1】:

我在 println 中添加了“new Date()”,它现在可以工作了!

class MyJob {
    static triggers = { simple name: 'mySimpleTrigger', startDelay: 60000, repeatInterval: 1000 , repeatCount:-1}
    def group = "MyGroup"

    def execute(){
    println "Running Job!"+new Date()
  }
}

在我看来,石英似乎做了一些优化,当工作状态恒定时,它会运行一次!

【讨论】:

  • 看起来它被触发了几次,但是 GGTS(我认为你正在使用)在控制台中有一个优化机制来防止打印相同的通信几次,所以它只打印“正在运行的作业! "一次。添加 new Date() 以输出后,每次通信都不同。
【解决方案2】:

如果您想多次运行作业,请在简单触发器定义中指定repeatCount:

repeatCount — 触发器将触发作业执行 (1 + repeatCount) 次并在此之后停止(在此处指定 0 以进行一次性作业或 -1 以无限期重复作业执行)

【讨论】:

  • Quartz 插件的默认重复次数为 -1。查看TriggersConfigBuilder.groovy了解完整详情。
  • 我也设置了repeatCount (:10) 但无法得到结果。
【解决方案3】:

您可以在触发器中定义 cron 以配置您的作业将在何时执行:

static triggers = {
    cron name: 'mySimpleCron', cronExpression: "0 30 15 * * ?"
}

这将在每天 15:30:00 运行您的作业。

另一个例子:

1. 每天从下午 2 点开始到下午 2:05 结束,每分钟触发一次:

cronExpression: "0 0-5 14 * * ?"

2.每周一、二、三、四、五上午10:15开火:

cronExpression: "0 15 10 ? * MON-FRI"

7 个术语 表达式的语法是:

* * * * * * *
| | | | | | |_ Year [optional]
| | | | | |_ Day of Week, 1-7 or SUN-SAT, ?
| | | | |_ Month, 1-12 or JAN-DEC
| | | |_ Day of Month, 1-31, ?
| | |_ Hour [0-23]
| |_ Minute [0-59] 
|_ Second [0-59]

以这种方式定义作业执行行为更容易,您将有更多选项来配置,只需更改表达式而不是整个代码。

这些链接中的更多信息:

CronTrigger Tutorial

Quartz plugin for Grails - Reference Documentation

【讨论】:

    猜你喜欢
    • 2014-01-07
    • 1970-01-01
    • 2011-01-18
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    相关资源
    最近更新 更多