solon.schedule
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.schedule</artifactId>
</dependency>
1、描述
调度扩展插件。这个框架与 Spring schedule 能力差不多,主要为从 Spring 迁移过来的同学提供便利。没有外部框架的依赖,且支持毫秒级的调度。
2、使用示例
// 启用 Scheduled 注解的任务
@EnableScheduling
public class JobApp {
public static void main(String[] args) {
Solon.start(JobApp.class, args);
}
}
// 基于 Runnable 接口的模式
@Scheduled(fixedRate = 1000 * 3)
public class Job1 implements Runnable {
@Override
public void run() {
System.out.println("我是 Job1 (3s)");
}
}
// 基于 Method 的模式
@Component
public class JobBean {
@Scheduled(fixedRate = 1000 * 3)
public void job11(){
System.out.println("我是 job11 (3s)");
}
@Scheduled(cron = "0/10 * * * * ? *")
public void job12(){
System.out.println("我是 job12 (0/10 * * * * ? *)");
}
//cron 表达式,支持时区的模式
@Scheduled(cron = "0/10 * * * * ? * +05")
public void job13(){
System.out.println("我是 job13 (0/10 * * * * ? *)");
}
//时区独立表示的模式
@Scheduled(cron = "0/10 * * * * ? *", zone = "Asia/Shanghai")
public void job14(){
System.out.println("我是 job14 (0/10 * * * * ? *)");
}
}
3、@Scheduled 属性说明
属性 | 说明 |
---|---|
name | 任务名称 |
cron | Cron 表达式:支持7位(秒,分,时,日期ofM,月,星期ofW,年) |
zone | 时区:+08 或 CET 或 Asia/Shanghai |
fixedRate | 固定间隔毫秒数(大于 0 时,cron 会失效) |
fixedDelay | 固定延时毫秒数 (fixedRate 大于 0 时,才有效) |
4、Cron 支持的增强表达式
支持7位(秒,分,时,日期ofM,月,星期ofW,年)
- 例:
0 0/1 * * * ? *
- 带时区,例:
0 0/1 * * * ? * +05
或0 0/1 * * * ? * -05