Java | ‌JFinal框架项目中实现定时任务

98 阅读1分钟

今天实现了在JFinal框架项目中添加定时任务的功能,这里总结下:

1.在BaseConfig的configPlugin中增加任务调度插件

public class BaseConfig extends JFinalConfig {
    ……
    /**
     * 配置插件
     */
    public void configPlugin(Plugins me) {
        ……
        // 任务调度插件
        me.add(new Cron4jPlugin(PropKit.use("conf/task.properties")));
    }
}

2.task.properties配置

# 配置有哪些 task 需要被调度,多个任务名称可用逗号分隔
cron4j = queryCron,queryCrontwo

# cron 表达式调试任务
queryCron.cron = 00 00 * * *
# 调试线程是否设置为守护线程,默认值为 true,守护线程会在 tomcat 关闭时自动关闭
queryCron.daemon = true
# 执行任务的类文件
queryCron.class = com.aisino.api.task.QueryIndexTask
# 任务是否有效,默认值为 true,为 false 时该任务无效,不会被调用
queryCron.enable = false

#生成当月的数据表定时任务
# cron 表达式调试任务
queryCrontwo.cron = 00 01 * * *
# 调试线程是否设置为守护线程,默认值为 true,守护线程会在 tomcat 关闭时自动关闭
queryCrontwo.daemon = true
# 执行任务的类文件
queryCrontwo.class = com.aisino.api.task.QueryIndexTwoTask
# 任务是否有效,默认值为 true,为 false 时该任务无效,不会被调用
queryCrontwo.enable = true

cron表达式: 00 01 * * * 分别对应:分 时 日 月 星期,这个表达式表示这个任务将在任意月、任意日、01点00分执行。

3.实现定时任务task

public class QueryIndexTask implements ITask {

    @Override
    public void run() {
        System.out.println("任务开始了");
    }

    @Override
    public void stop() {
        System.out.println("任务结束了");
    }
}

自定义task要继承ITask。