1.安装插件
a.在bulidConfig 中 加入 compile ":quartz:1.0.2" 运行项目
b.grails install-plugin quartz
c.grails install-plugin http://cloud.github.com/downloads/nebolsin/grails-quartz/grails-quartz-0.4.1.zip
2.用法
a.命令行输入 grails create-job MyJob 这样会创建一个groovy 的文件 里面的内容为
class MyJob{
static triggers ={
// name :triggers 的名字 startDelay :启动延迟 单位毫秒 ,repeatInterval 重复时间 , repeatCount :重复的次数
simple name:'simpleTrigger', startDelay:10000, repeatInterval: 30000, repeatCount: 10
// name :triggers的名字 startDelay :启动延迟 单位毫秒 cronExpression :时间表达式,规定具体的时间执行 如每天几点几分
cron name:'cronTrigger', startDelay:10000, cronExpression: '0/6 * 15 * * ?'
// name:trggers的名字 triggerClass:自定义实现triggers的类
custom name:'customTrigger', triggerClass:MyTriggerClass, myParam:myValue, myAnotherParam:myAnotherValue
}
def execute(){ print "Job run!" }
}
cronExpression: "s m h D M W Y"
| | | | | | `- 年 [optional]可选
| | | | | `- 星期, 1-7 or SUN-SAT, ? 必填 *表示是所有
| | | | `- 月, 1-12 or JAN-DEC 必填 *表示所有
| | | `- 天, 1-31, ? 必填
| | `- 时, 0-23 必选
| `- 分, 0-59 必填
`- 秒, 0-59 必填
3.手动调用
//定时器类
class MyJob{
static triggers = {}
def execute(context){
println context.mergedJobDataMap.get('foo')
}
}
//controller 的action 里面可以这样调用
// 创建 cron trigger;
MyJob.schedule('0/6 * 15 * * ?', [foo:'foo'])
// 创建simple trigger: 执行repeatCount+1 次 相隔repeatInterval 毫秒执行一次
MyJob.schedule(Long repeatInterval, Integer repeatCount?, Map params?) )
// 在特定的时间执行
MyJob.schedule(Date scheduleDate, Map params?)
//执行自定定时器
MyJob.schedule(Trigger trigger)
// 立马执行
MyJob.triggerNow(Map params?)