• spring MVC 设置 定时任务


    在xml 的配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:task="http://www.springframework.org/schema/task"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/task
           http://www.springframework.org/schema/task/spring-task-3.2.xsd" >
    
    <!--     bean definition    HeartBeatTask 启动定时任务的类 要做的什么事
    --> 
    <bean id="heartBeat" class="devp.machine.business.controller.HeartBeatTask" /> <!-- task definition-->
      <task:scheduler id="myScheduler" pool-size="10" />
        <task:scheduled-tasks scheduler="myScheduler">
        <task:scheduled ref="heartBeat" method="run" initial-delay="10000" fixed-delay="5000" />
      </task:scheduled-tasks>
    </beans>

    <task:scheduled> 的参数说明如下:
    initial-delay :  表示第一次运行前需要延迟的时间,单位是毫秒
    fixed-delay  :  表示从上一个任务完成到下一个任务开始的间隔, 单位是毫秒
    fixed-rate    :  表示从上一个任务开始到下一个任务开始的间隔, 单位是毫秒(如果某次任务开始时上次任务还没有结束,那么在上次任务执行完成时,当前任务会立即执行)
    cron           :  cron 表达式,由6个字段组成,依次为 second, minute, hour, day, month, weekday  例如:
                     "0 0 * * * *"                     = the top of every hour of every day.
                     "*/10 * * * * *"                 = every ten seconds.(在 0, 10, 20, 30, 40, 50 秒时运行)
                     "0 0 8-10 * * *"               = 8, 9 and 10 o'clock of every day.
                     "0 0/30 8-10 * * *"          = 8:00, 8:30, 9:00, 9:30, 10:00 and 10:30 o'clock every day.
                     "0 0 9-17 * * MON-FRI" = on the hour nine-to-five weekdays
                     "0 0 0 25 12 ?"              = every Christmas Day at midnight

    要启动的类:

    package devp.machine.business.controller;
    
    import devp.common.utils.IdCreator;
    import devp.machine.api.service.ICenterService;
    import devp.machine.impl.dao.ResourceCountDao;
    import devp.machine.impl.service.CenterService;
    import org.apache.commons.collections4.CollectionUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    import org.springframework.transaction.annotation.Transactional;
    
    import java.util.List;
    import java.util.Map;
    
    
    public class HeartBeatTask {
    
        /**
         * 定时完成  统计数据资源中心的数据
         */
    
        @Autowired
        private ICenterService centerService;
        @Autowired
        private CenterService centerServiceImpl;
    
        @Autowired
        private ResourceCountDao resourceCountDao;
    

      // run 方法就是启动的类 与配置文件中的方法名一致。
    public void run(){
        
    try{ // 获取查出来的数据 放在新的表中 Map<String, List<Map<String, Object>>> data = centerService.dataCount(); if(!data.isEmpty()){ // 清空表 String deleteSql = "delete from resource_count"; int delete = resourceCountDao.executeSQL(deleteSql); List<Map<String, Object>> entity = data.get("entity"); List<Map<String, Object>> relation = data.get("relation"); List<Map<String, Object>> text = data.get("text"); // 循环 存入数据库表 resource_count 中 Integer entityCount = centerServiceImpl.insertEntityList(entity); Integer relationCount = centerServiceImpl.insertRelationList(relation); Integer textCount =centerServiceImpl.insertTextList(text); } }catch (Exception e){ e.printStackTrace(); } } }
  • 相关阅读:
    数据库字段说明查询
    MUI 微信支付代码
    数据库 批量删除表
    c# 微信开发 《内容回复或事件触发》
    C# 微信开发 《验证签名》
    SQL SERVER占用CPU过高排查和优化
    类属性验证简单说明
    地图纠偏
    区块链-6一个故事告诉你比特币的原理及运作机制
    区块链-5区块链技术入门,涉及哪些编程语言?
  • 原文地址:https://www.cnblogs.com/yishuo/p/13030189.html
Copyright © 2020-2023  润新知