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