关于安装
如果对最新的源码感兴趣,可以浏览GitHub project page 或者使用
git clone git://github.com/nebolsin/grails-quartz.git
最新版本
当前稳定版本是0.4.2,正在开发中的版本是Grails-Quartz1.0
cron表达式
cron表达式各字段的说明
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
注:
- 只有Year是可选的,可以省略,其他字段都是必选;
- 星期和月份是不区分大小写的, "DEC" = "dec" = "Dec"
- 星期和月份其中之一必须是 "? ",否则会产生错误。因此你不能两者都指定,或者都设置为*,这也是按照unix crontab规范实现的。
- 查看 CronTrigger Tutorial 以获取所有你可以使用的字符。
聚集(Clustering)
Grails-Quartz现在还不支持out-of-the-box Clustering,但是可以使用标准Quartz Clustering配置。你可以查看Burt Beckwith提供
的示例 Quartz Plugin clustering_sample.tar.gz . 还需要设置jdbcStore
配置项设置为true。
配置store/Clustering,在jobs中有两个参数需要配置:volatility
和durability
,缺省值为true;触发器(triggers )有一个参数需要
配置:volatility
,缺省值也为true;Volatile job和trigger 在Quartz运行时不会存在,但durable job会一直存在,即使trigger未触发
更多信息请阅读Quartz文档: clustering and job stores 以及volatility and durability .
恢复(Recovering)
从0.4.2版本,具有requestsRecovery
配置(缺省为false)的job可以从 'recovery'或 'fail-over' 位置进行恢复。
如果一个job "requests recovery",那么在执行时,如果遇到一个调度任务被“硬关闭”('hard shutdown') (如正在运行的进程崩溃,
机器被关机),那么在调度重新开始时job会重新执行。这种情况下,JobExecutionContext.isRecovering()方法会返回true。