1. 程式人生 > >小D課堂【SpringBoot】整合定時任務和異步任務

小D課堂【SpringBoot】整合定時任務和異步任務

test 方式 表達式 lose sum 適用於 public string 封裝

========================10、SpringBoot整合定時任務和異步任務處理 3節課================================

1、SpringBoot定時任務schedule講解
簡介:講解什麽是定時任務和常見定時任務區別

1、常見定時任務 Java自帶的java.util.Timer類
timer:配置比較麻煩,時間延後問題
timertask:不推薦

2、Quartz框架
配置更簡單
xml或者註解

3、SpringBoot使用註解方式開啟定時任務
1)啟動類裏面 @EnableScheduling開啟定時任務,自動掃描

2)定時任務業務類 加註解 @Component被容器掃描
3)定時執行的方法加上註解 @Scheduled(fixedRate=2000) 定期執行一次

2、SpringBoot常用定時任務配置實戰
簡介:SpringBoot常用定時任務表達式配置和在線生成器

技術分享圖片

技術分享圖片
package net.xdclass.base_project.task;

import java.util.Date;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/** * 功能描述:定時任務業務類 * * <p> 創建時間:Apr 30, 2018 10:21:48 AM </p> * *@作者 小D課堂 小D */ @Component public class TestTask { @Scheduled(fixedRate=2000) //兩秒執行一次 public void sum(){ System.out.println("當前時間:"+new Date()); } }
Task

控制臺技術分享圖片

1、cron 定時任務表達式 @Scheduled(cron="*/1 * * * * *") 表示每秒

1)crontab 工具 https://tool.lu/crontab/
2、fixedRate: 定時多久執行一次(上一次開始執行時間點後xx秒再次執行;)
3、fixedDelay: 上一次執行結束時間點後xx秒再次執行
4、fixedDelayString: 字符串形式,可以通過配置文件指定

3、SpringBoot2.x異步任務實戰(核心知識)
簡介:講解什麽是異步任務,和使用SpringBoot2.x開發異步任務實戰
1、什麽是異步任務和使用場景:適用於處理log、發送郵件、短信……等
下單接口->查庫存 100
余額校驗 150
風控用戶100
....


2、啟動類裏面使用@EnableAsync註解開啟功能,自動掃描

3、定義異步任務類並使用@Component標記組件被容器掃描,異步方法加上@Async
註意點:
1)要把異步任務封裝到類裏面,不能直接寫到Controller
2)增加Future<String> 返回結果 AsyncResult<String>("task執行完成");
3)如果需要拿到結果 需要判斷全部的 task.isDone()
4、通過註入方式,註入到controller裏面,如果測試前後區別則改為同步則把Async註釋掉

小D課堂【SpringBoot】整合定時任務和異步任務