编写controller或者service
定时任务写在run方法中
public class TotalNumberStatisticsController implements Runnable { private boolean started = false; private TotalNumberStatisticsController service = null; /* * 在标准地表xxx_resource_data查询标准地数据统计总数,执行该方法当天的时间,再将查询结果添加到资源标准地统计总数表xxx_resource_sland_sum_statistics * 每月执行一次 * */ @Override public void run() { if (started) { if (service == null) { service = Enhancer.enhance(TotalNumberStatisticsController.class); } if (service != null) { Record records = Db.findFirst("select count(*) as sum from xxx_resource_data where del = 0"); Integer sum = records.getInt("sum"); Record sum_time = new Record(); sum_time.set("total_number", sum); sum_time.set("date", new Date()); Db.save("xxx_resource_sland_sum_statistics", sum_time); System.out.println("**************************************"); System.out.println("方法执行成功!数据添加成功!"); } } } public boolean isStarted() { return started; } public void setStarted(boolean started) { this.started = started; } }
配置:
/** * 配置插件 */ @Override public void configPlugin(Plugins me) { super.configPlugin(me); Cron4jPlugin cp = new Cron4jPlugin("task.txt"); me.add(cp); me.add(new JwtTokenPlugin(UpmsJwtUserService.me())); // me.add(new LicensePlugin()); Cron4jPlugin cp1 = new Cron4jPlugin(); Cron4jPlugin cp2 = new Cron4jPlugin(); timingChangeTokenController = new TimingChangeTokenController(); totalNumberStatisticsController = new TotalNumberStatisticsController(); cp1.addTask("0 0 */2 * *", timingChangeTokenController); cp2.addTask("1 0 1 * *",totalNumberStatisticsController); //cp2.addTask("* * * * *",totalNumberStatisticsController); // cp.addTask("* * * * *", pollutionsourceService); me.add(cp1); me.add(cp2); }
配置启动 判断如果编写的controller或者service不为空,则启动任务
@Override public void onStart() { super.onStart(); com.lambkit.core.api.route.ApiRoute.me().onStart(); if(totalNumberStatisticsController!=null) totalNumberStatisticsController.setStarted(true); } }); }
task.txt
# cron 表达式由五部分组成:分 时 天 月 周 # 分 :从 0 到 59 # 时 :从 0 到 23 # 天 :从 1 到 31,字母 L 可以表示月的最后一天 # 月 :从 1 到 12,可以别名:jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov" and "dec" # 周 :从 0 到 6,0 表示周日,6 表示周六,可以使用别名: "sun", "mon", "tue", "wed", "thu", "fri" and "sat" # # 数字 n:表示一个具体的时间点,例如 5 * * * * 表示 5 分这个时间点时执行 # 逗号 , :表示指定多个数值,例如 3,5 * * * * 表示 3 和 5 分这两个时间点执行 # 减号 -:表示范围,例如 1-3 * * * * 表示 1 分、2 分再到 3 分这三个时间点执行 # 星号 *:表示每一个时间点,例如 * * * * * 表示每分钟执行 # 除号 /:表示指定一个值的增加幅度。例如 n/m表示从 n 开始,每次增加 m 的时间点执行 # cron4j 集成cron 只有 分 时 天 月 周 没有秒 cron4j=cleanOrderIncr cleanOrderIncr.cron=15 * * * * cleanOrderIncr.class=com.xxxx.server.controller.XxxxController cleanOrderIncr.daemon=true cleanOrderIncr.enable=true
cron表达式 自行百度