Springboot-之定時任務,啟動執行任務

weixin_33936401發表於2018-06-06
定時任務

springboot是整合了定時任務的外掛的,使用定時任務的時候可以在類上加註解。
@Scheduled ,對就張這樣,支援Cron表示式(在某天某一時間執行),和定時執行(隔相同時間執行)。
@Scheduled(cron="0 0 0 1/1 * ? ") //每天00:00:00執行一次。
@Scheduled(fixedRate =50000) //當前方法開始執行後,50秒再執行一次。
@Scheduled(fixedDelay =50000) //當前方法執行結束後,50秒再執行一次。
注意啦 fixedRate是開始後!!!執行,Delay是執行結束後!!!
啟動springboot專案啟動的時候,所有的定時專案都會跟著執行。 如果想啟動專案時候讓定時任務延遲執行,就要這樣
@Scheduled(initialDelay = 10000, fixedRate = 50000) //專案啟動後延遲10秒執行方法 50秒再執行一次。
也沒嘛好說的,程式碼就上這麼多把

@Scheduled(fixedRate  = 50000)
    public void rePush() throws Exception {
        log.info("================開始執行定時檢測未派單狀態的單子進行派單操作===================");
        List<CustomerDispatcherRecord> cdrs =  customerDispatcherRecordMapper.selectByStaus("1");
        for(CustomerDispatcherRecord cdr:cdrs){
            log.info("================進行二次派單操作 派的單子是"+cdr+"=========================");
            pushMsgSerivce.secondPushMsg(cdr.getCustomerInfoId(),cdr.getId());
        }

    }

啟動執行任務

要實現CommandLineRunner介面,這個介面是springboot自帶的,然後複寫run方法就可以啦。很簡單很簡單。

public class SendOrderTask implements CommandLineRunner {
@Override
    public void run(String... strings) throws Exception {
          xxxxx
  }
}

相關文章