使用 quartz-solon-plugin 开发定时任务(新)
(一)新建一个 maven 空项目
(二)添加 maven 引用
<dependency>
<groupId>org.noear</groupId>
<artifactId>quartz-solon-plugin</artifactId>
<version>1.2.20</version>
</dependency>
(三)新建代码文件
- java/jobapp/JobApp
- java/jobapp/controller/QuartzJob
- java/jobapp/controller/QuartzRun1
- java/jobapp/controller/QuartzRun2
- reources/application.properties
(四)代码
- JobApp 代码
JobApp.java
//
// 启用 Quartz 注解的任务
//
@EnableQuartz
public class JobApp {
public static void main(String[] args) {
Solon.start(JobApp.class, args);
}
}
- 使用快捷配置模式:n + ms,s,m,h,d ;使用 Runnable 接口开发
Cron4jRun1.java
@Quartz(cron7x = "200ms" ,name = "job1")
public class QuartzRun1 implements Runnable {
@Override
public void run() {
System.out.println("我是 QuartzRun1 (200ms)");
}
}
- 使用 cron7x 配置模式:* * * * * * *;使用 Runnable 接口开发
QuartzRun2.java
@Quartz(cron7x = "0 0/1 * * * ? *")
public class QuartzRun2 implements Runnable {
@Override
public void run() {
System.out.println("我是 QuartzRun2 (0 0/1 * * * ? *)");
}
}
- 使用 cron7x 配置模式:* * * * * * *;使用 Job 接口开发
QuartzJob.java
@Quartz(cron7x = "0 0/1 * * * ? *")
public class QuartzJob implements Job {
@Override
public void execute(JobExecutionContext ctx) throws JobExecutionException {
System.out.println("我是 QuartzJob (0 0/1 * * * ? *)");
}
}
(五)通过配置,控制有name的任务
application.properties
# solon.quartz.{job name}
#
solon.quartz.job1.cron5x=10s #重新定义时间表达式
solon.quartz.job1.enable=true #用任务进行启停控制
(六)运行输出
solon.plugin:: Start loading
file:/Users/xieyuejia/WORK/work_github/solon_demo/demo10.solon_schedule/target/classes/application.properties
jar:file:/Users/xieyuejia/.m2/repository/org/noear/quartz-solon-plugin/1.2.20/quartz-solon-plugin-1.2.20.jar!/solonplugin/solon.extend.quartz.properties
我是定时任务: QuartzRun1(200ms))
solon.plugin:: End loading @129ms
我是定时任务: QuartzRun1(200ms)