编写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表达式 自行百度









