在Grails中使用Quartz插件

时间:2012-08-15 15:09:37

标签: grails quartz-scheduler

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

由于

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

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

3 个答案:

答案 0 :(得分: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()
  }
}

似乎对我来说石英做了一些优化,当作业状态不变时它会运行一次!

答案 1 :(得分:0)

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

  

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

答案 2 :(得分:0)

您可以在触发器中定义 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个术语表达式的sintax是:

* * * * * * *
| | | | | | |_ 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

相关问题