Grails Quartz插件,定时调度任务

Quartz插件可以使Grails应用程序按照指定的时间间隔或cron表达式来执行调度任务。

用法

1.引用quartz

dependencies {
    compile 'org.grails.plugins:quartz:2.0.0.M4'
}

2.使用

可以使用命令行创建,如果不想用命令,直接在grails-app/jobs下创建job,在grails-app/jobs路径下创建任务

(1)simple

 

  • name:触发器的名称
  • startDelay:调度器启动与第一次执行任务之间的间隔(ms)
  • repeatInterval:连续两次执行任务之间的时间间隔(ms)
  • repeatCount:任务执行(1+repeatCount)次之后停止(-1表示无限次执行)
class MyJob {
  static triggers = {
    simple name: 'mySimpleTrigger', startDelay: 60000, repeatInterval: 1000  
  }
  def group = "MyGroup"
  def description = "Example job with Simple Trigger"
  def execute(){
    print "Job run!"
  }
}

(2)cron

  • name:触发器的名称 
  • startDelay:调度器启动与第一次执行任务之间的间隔(ms)
  • cronExpression:cron表达式
class MyJob  {
  static triggers = {
    cron name: 'myTrigger', cronExpression: "0 0 6 * * ?"
  }
 def group = "MyGroup"
 def description = "Example job with Cron Trigger"
 def execute(){
   print "Job run!"
 }
}
cronExpression: "s m h D M W Y"
                 | | | | | | `- 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

*代表整个时间段,每一个字段都有一套可以指定的有效值,如:

"/":为特别单位,表示为“每”,如“*/15”表示每隔15s执行一次,“0/15”表示每隔15s执行一次,3表示从第3s开始执行。

"?":表示任意一天

"L":表示每周或每月的最后一天

"W": 表示最近工作日

"#":用来指定的每月第n个工作日。

(3)custom

  • triggerClass:自定义的实现了Trigger接口的类
  • 自定义触发器需要的其他参数。

3.配置quartz

可以通过grails-app/conf/application.yml文件进行配置

 

quartz:
    autoStartup: true

 

参考:http://grails-plugins.github.io/grails-quartz/latest/guide/configuration.html

 

最后欢迎大家访问我的个人网站:1024s​​​​​​​

阅读更多

扫码向博主提问

chs007chs

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • java
  • linux
去开通我的Chat快问

没有更多推荐了,返回首页