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


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

    第一步配置:
    第二步配置:注解扫描

     第三步配置:开启任务

    类中注解配置:如下

    @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的版本低的原因吗,这个没有亲测过。
    有问题欢迎留言
  • 相关阅读:
    ftl总结
    关于button的自动刷新
    判断json格式中是否含有key
    main方法的参数
    开发笔记--java.lang.OutOfMemoryError: PermGen space异常处理
    C/C++混合编程
    MFC 模块状态的实现
    类的私有private构造函数 ,为什么要这样做
    MFC DLL 导出函数的定义方式
    关于 AfxGetStaticModuleState ()
  • 原文地址:https://www.cnblogs.com/abc8023/p/9123030.html
Copyright © 2020-2023  润新知