maku-module-quartz 为定时任务组件,基于quartz开源框架实现,支持动态新增、修改、暂停、恢复、执行、删除定时任务,还提供了日志查看,方便查看定时任务执行详情,还支持集群部署。
引入
在
maku-boot/maku-server/pom.xml
里面引入组件依赖,如下所示:
<dependency>
<groupId>net.maku</groupId>
<artifactId>maku-module-quartz</artifactId>
<version>${revision}</version>
</dependency>
IDEA开发工具生效
完成上面的引入后,idea开发工具,默认是不会加载这个依赖的,我们就会错误的感觉引入依赖失败。要让idea开发工具生效也很简单,只需要reload一下,就可以了,如下所示:
完成上面这2步后,依赖就会生效。
SQL语句
执行对应的SQL文件(如:MySQL),初始化表结构和菜单等,如下所示
maku-boot/db/mysql/module/maku-module-quartz.sql
启动项目
完成上面2步骤后,再启动项目,则可看到maku-module-quartz对应的功能,如下所示:
使用说明
我们可以动态新增一个定时任务,如下所示:
- 任务名称:描述定时任务的功能
- 任务组名:给定时任务分组的,可以在【数据字典】中新增、修改、删除组名
- bean名称:具体任务类,需要添加到spring容器中,也就是在类上面,添加
@Component
注解 - 方法名称:任务类里面定义的方法名,一个任务类可以有多个方法
- 方法参数:方法接受的参数值,如果有多个参数,可以使用json数据,然后在方法里面解析json
- cron表达式:定时任务执行的时间,可以根据界面自动生成
- 是否并发:在相同定时任务中,上一个任务还没结束时,是否启动下一个任务(允许:启动;禁用:不启动),建议禁用
任务类
我们只需要创建一个类,添加
@Component
注解,就可以当做任务类使用,对应的spring bean名称为testTask,如下所示:
@Slf4j
@Component
public class TestTask {
public void run(String params) throws InterruptedException {
log.info("我是testTask.run(),参数:{},正在被执行。", params);
Thread.sleep(1000);
}
}