【死磕jeesite源码】Jeesite配置定时任务

时间:2023-03-08 20:53:30
【死磕jeesite源码】Jeesite配置定时任务

一、主要是注意XML文件中设置3个地方和类文件中配置

第一步配置:
【死磕jeesite源码】Jeesite配置定时任务
第二步配置:注解扫描
【死磕jeesite源码】Jeesite配置定时任务

第三步配置:开启任务

【死磕jeesite源码】Jeesite配置定时任务

类中注解配置:如下

@Service 或者Component
@Lazy(false)
public class ImportGamexxjh5 {
private static Logger logger = LoggerFactory.getLogger(ImportGamexxjh5.class);
@Autowired
Gamexxjh5Service gamexxjh5Service;
@Autowired
TfAnaysisResultTyhxService tfAnaysisResultTyhxService; @Scheduled(cron = "0 4 18 * * ?")
public void importGameXXJH5() {
logger.info("-------执行importGameXXJH5开始------->"+ DateUtils.getDateTime());
SimpleDateFormat myFmt = new SimpleDateFormat("yyMMdd");
Date date = new Date();
String nowdate = myFmt.format(date);
String tablename="order_"+nowdate;
rundata(tablename);
logger.info("-------导入H5数据库中"+tablename+"表的渠道汇总数据----");
logger.info("-------执行importGameXXJH5结束------->"+DateUtils.getDateTime());
} public void rundata(String tablename) {
//数据源切至H5数据库,获取按渠道按天汇总数据
DynamicDataSource.setCurrentLookupKey("h5_dataSource");
List<Gamexxjh5> gList = gamexxjh5Service.queryAll(tablename);
//数据源切换回至版权数据库
DynamicDataSource.setCurrentLookupKey("dataSource");
//将数据导入至版权的数据表中
for (Gamexxjh5 item : gList) {
TfAnaysisResultTyhx tfAnaysisResultTyhx =new TfAnaysisResultTyhx();
tfAnaysisResultTyhx.setChannelid(item.getChannelid());
tfAnaysisResultTyhx.setChannelname(item.getChannelname());
tfAnaysisResultTyhx.setDaypayment(item.getDaypayment());
tfAnaysisResultTyhx.setStatdate(item.getStatdate()); tfAnaysisResultTyhx.setGameid("41");
tfAnaysisResultTyhx.setGamename("新仙剑H5");
tfAnaysisResultTyhx.setGameEnglishName("xinxianjianH5");
tfAnaysisResultTyhx.setResult("Y");
tfAnaysisResultTyhx.setChanneltype("");
tfAnaysisResultTyhx.setIpowner("大宇资讯股份有限公司");
tfAnaysisResultTyhx.setIpownerid("8");
tfAnaysisResultTyhx.setMoneycl(item.getDaypayment());
tfAnaysisResultTyhx.setMoney(item.getDaypayment());
tfAnaysisResultTyhxService.save(tfAnaysisResultTyhx);
}
}
}

二、总结:

配置文件中必要项:
  • xmlns:task="http://www.springframework.org/schema/task"
  • http://www.springframework.org/schema/task
  • http://www.springframework.org/schema/task/spring-task-4.1.xsd
  • <task:annotation-driven />
类中注解必要项:
  • @Service 或者Component
  • @Lazy(false)
  • @Scheduled(cron = "0 4 18 * * ?")
  • 类中引用其他service层用属性注入 @Autowired即可

三、注意事项

【1】main调用的时候不能通过 @Autowired 来进行注解,
因为你没有启动项目,相当于你注入的东西没有没有被使用,
使用main方法使用的话,必须使用getbean获取实例对象。
【3】本版本采用的spring4.0 ,网上有文章写@Scheduled不支持属性注入 @Autowired,
因为定时任务会在属性注入之前执行,是不是spring的版本低的原因吗,这个没有亲测过。
有问题欢迎留言