SpringBoot搭建多線程定時任務

SpringBoot搭建多線程定時任務


  在一些系統上線之前,總需要後臺定時執行一些事情。這個時候就需要定時任務來做這件事情。
  多線程的目的是:使同一個定時任務模塊的兩個不同的定時任務業務不互相影響。在SpringBoot中集成了定時任務的簡單配置

package com.resource.task;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * @program: travel-res-service
 * @description: 定時任務
 * @author: Andrea
 * @create: 2019-11-15 14:54
 **/
//@Component
@Configuration//標記啓動類,兼備Component效果
@EnableScheduling//開啓定時任務
@EnableAsync//多線程標記(兩個定時任務不互相影響)
public class CornJob {

    //或直接指定時間間隔,例如:5秒
    //@Scheduled(fixedRate=5000)
    //3.添加定時任務
    @Async
    @Scheduled(cron = "0 50 2 * * ?")//每天2:50分執行
    public void cleanSegDatas() {
        boolean b = //定時執行業務1的返回結果
        if (b){
            System.out.println("執行業務1完成");
        }
        System.err.println("執行執行業務1定時任務時間: " + LocalDateTime.now());
    }
    @Async
    @Scheduled(cron = "0 0 3 * * ?")//每天3:00分執行
    public void cleanTraRouteDatas() {
        boolean b = //定時執行業務2的返回結果
        if (b){
            System.out.println("業務2完成");
        }
        System.err.println("執行業務2定時任務時間: " + LocalDateTime.now());
    }
}

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