Springboot定時任務實現

emmmm,Springboot構建的項目需要實現定時任務

項目代碼如下:

package com.swf.attence.hikConfig;

import com.swf.attence.service.IEveryTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @author : white.hou [email protected]
 * @description : ajax請求專用controller
 * @date: 2019/2/11_15:02
 */
/**
 * 每日任務,包括臨時報警數據存放、數據分析、數據解析後寫入正式庫等任務
 */
@Component
@EnableScheduling
public class CameraEveryTask {
    @Autowired
    private IEveryTaskService iEveryTaskService;

    /**
     * 每天建立數據庫表
     */
    @Scheduled(cron ="0 0 0 1/1 * ? ")
    public void creatTmpTable(){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
        String day = dateFormat.format(new Date());
        iEveryTaskService.creatEveryDayTable(day);
        System.out.println("今日: "+day+"數據表創建完成");
    }
    /**
     * 每天凌晨1時對前一日數據分析,存入正式表
     * 動作以下幾個:1 從每日表中拉取指定數據(進、出) 2 根據第一次進的時間(ip)、最後一次出的時間(ip)與time_control表的規定事項比較
     * 3 存入正式表
     */
    @Scheduled(cron = "0 0 1 1/1 * ?")
    public void dataAnalysis() throws SQLException, ClassNotFoundException {
        /**
         * 獲取上一天日期
         */
        Calendar instance = Calendar.getInstance();
        instance.setTime(new Date());
        instance.add(Calendar.DATE,-1);
        Date time = instance.getTime();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        String format = simpleDateFormat.format(time);
        iEveryTaskService.everyDataAnalsis(format);
        System.out.println(format+"  數據分析完成,請登錄查看");
    }
    @Scheduled(cron = "0 0 0/1 1/1 * ? ")
    public void scheduledTest(){
        System.out.println("這是個調度測試程序");
    }

    public static void main(String[] args) {
        Calendar instance = Calendar.getInstance();
        instance.setTime(new Date());
        instance.add(Calendar.DATE,-1);
        Date time = instance.getTime();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        String format = simpleDateFormat.format(time);
        System.out.println(format);
    }
}

Over

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章