1

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

谢谢

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

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

3 回答 3

1

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

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

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

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

于 2012-08-16T21:06:42.573 回答
0

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

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

于 2012-08-15T20:20:32.237 回答
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 项表达式的语法为:

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

Grails 的 Quartz 插件 - 参考文档

于 2014-05-30T15:21:29.247 回答