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