在Grails中使用Quartz插件

在Grails中使用Quartz插件,grails,quartz-scheduler,Grails,Quartz Scheduler,我是Grails中使用Quartz插件的新手,希望运行简单的应用程序。我使用了以下代码(form quartz plugin docs),但它只运行一次。有什么想法吗?我应该设置什么吗 谢谢 class MyJob { static triggers = { simple name: 'mySimpleTrigger', startDelay: 60000, repeatInterval: 1000 } def group = "MyGroup" def execute

我是Grails中使用Quartz插件的新手,希望运行简单的应用程序。我使用了以下代码(form quartz plugin docs),但它只运行一次。有什么想法吗?我应该设置什么吗

谢谢

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

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

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

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


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

repeatCount-触发器将触发作业执行(1+repeatCount)次,并在该次触发后停止(在此处指定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()
  }
}
在我看来,石英进行了一些优化,,当作业状态不变时,它会运行一次

我在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()
  }
}

在我看来,石英进行了一些优化,,当作业状态不变时,它会运行一次

您可以在触发器中定义一个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]
以这种方式定义作业执行行为更容易,而且您可以通过更改表达式而不是整个代码来配置更多选项

有关这些链接的更多信息:


您可以在触发器中定义一个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]
以这种方式定义作业执行行为更容易,而且您可以通过更改表达式而不是整个代码来配置更多选项

有关这些链接的更多信息:


请提供更多信息。类是否在/grails app/jobs中?将startDelay设置为10000以防止等待1分钟。是的,它位于/grails app/jobs中,quartz插件为0.4.2(我应该使用这个版本)。我可以说,你不应该设置任何东西。可能是这样:谢谢!但是他们的解决方案不能解决我的问题。请提供更多信息。类是否在/grails app/jobs中?将startDelay设置为10000以防止等待1分钟。是的,它位于/grails app/jobs中,quartz插件为0.4.2(我应该使用这个版本)。我可以说,你不应该设置任何东西。可能是这样:谢谢!但是他们的解决方案没有解决问题,石英插件的默认重复次数是-1。查看完整详细信息。我还设置了repeatCount(:10),但无法获得结果。Quartz插件的默认重复计数为-1。查看完整的详细信息。我还设置了repeatCount(:10),但无法获得结果。看起来它被触发了几次,但GGTS(我想您正在使用)在控制台中有一个优化机制,以防止多次打印相同的通讯,因此它只打印“Running Job!”一次。在向输出添加新日期()后,通信每次都不同。它看起来好像被触发了几次,但GGTS(我想您正在使用)在控制台中有一个优化机制,以防止多次打印相同的通信,因此它只打印“Running Job!”一次。将新日期()添加到输出后,每次通信都不同。