真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Spring定時任務(wù)-創(chuàng)新互聯(lián)

目錄

為崇仁等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及崇仁網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站設(shè)計、崇仁網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

一、創(chuàng)建項目

二、cron 表達(dá)式

2.1 符號講解

三、使用定時任務(wù)

3.1 單線程實現(xiàn)

3.2 異步多線程實現(xiàn)


視頻鏈接:學(xué)習(xí)中心|視頻播放頁 (boxuegu.com)https://xuexi.boxuegu.com/lesson/?id=1598

使用的idea版本:2022.3

一、創(chuàng)建項目

在 pom.xml 文件中添加以下內(nèi)容

org.springframework.bootspring-boot-starter-parent2.6.11org.springframework.bootspring-boot-starter-web

二、cron 表達(dá)式

在線Cron表達(dá)式生成器 (qqe2.com)https://cron.qqe2.com/

注意:國外是以周日為一周的第一天,所以 DayofWeek 中的 1-7 是指周日到周六

2.1 符號講解

通用符號:

  • ,? 表示列出枚舉值。例如:在?Minutes 域使用 5,20 表示在時間的分鐘數(shù)為 5、20 時觸發(fā)事件
  • -? 表示范圍。例如在 Minutes 域使用 5-20 表示在時間為 5 到 20 時每分鐘都觸發(fā)事件
  • *? 表示匹配該域的任意值。假如在 Minutes 域使用 * 表示時間分鐘數(shù)不做限制,每分鐘都觸事件
  • /? 表示起始時間開始觸發(fā),然后每隔固定時間觸發(fā)一次。例如在 Minutes 域使用 5/20 表示時間的分鐘數(shù)為 5 時觸發(fā)一次,后隔 20 分鐘即 25、45 再分別觸發(fā)一次

專有符號:

  • ?只能用在 DayofMonth 和 DayofWeek 兩個域,由于 DayofMonth 和 DayofWeek 互斥,需對其一設(shè)置 ?
  • L? 表示最后,只能出現(xiàn)在 DayofMonth 和?DayofWeek 域。如果在 DayofWeek 域使用 5L,意味著在最后的一個星期四觸發(fā)
  • W? 表示有效工作日? (周一到周五),只能出現(xiàn)在 DayofMonth 域,系統(tǒng)將在離指定日期的最近的有效工作日觸發(fā)事件
  • LW? 這兩個字符可以連用,表示在某個月的最后一個工作日
  • #? 用于確定每個月第幾個星期幾,只能出現(xiàn)在 DayofWeek 域。例如在?4#2,表示某月的第二個星期三(#號后面表示第幾個,#號前面表示每個星期的第幾天)
  • C? 只能用在 DayofMonth 和 DayofWeek 兩個域,需要關(guān)聯(lián)日歷,如果沒關(guān)聯(lián)可以忽略

注意:

  • 專有符號中除了 ? 外,在 Spring 定時任務(wù)中都不支持。

三、使用定時任務(wù) 3.1 單線程實現(xiàn)
  • 在啟動類上添加注解 @EnableScheduling
@SpringBootApplication
@EnableScheduling // 開啟對定時任務(wù)的支持
public class TaskApplication {
    public static void main(String[] args) {
        SpringApplication.run(TaskApplication.class, args);
    }
}
  • 在任務(wù)方法上添加注解?@Scheduled,并設(shè)置定時規(guī)則
@Component
public class Task {
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(cron = "*/6 * * * * *") //每6秒打印當(dāng)前時間
    public void getTime() {
        String time = dateFormat.format(new Date());
        System.out.println(time);
    }
}
  • 運行效果

3.2 異步多線程實現(xiàn)

默認(rèn)是單線程的定時任務(wù),如果任務(wù)持續(xù)時間較長,就會將和后續(xù)定時任務(wù)拖延,導(dǎo)致丟失任務(wù)。

  • 在啟動類上添加注解 @EnableScheduling、@EnableAsync
@SpringBootApplication
@EnableScheduling // 開啟對定時任務(wù)的支持
@EnableAsync // 開啟異步
public class TaskApplication {
    public static void main(String[] args) {
        SpringApplication.run(TaskApplication.class, args);
    }
}
  • 在任務(wù)方法上添加注解?@Scheduled,并設(shè)置定時規(guī)則,然后再添加注解?@Async
@Component
public class Task {
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
    @Async // 異步
    @Scheduled(cron = "*/6 * * * * *") //每6秒打印當(dāng)前時間
    public void getTime1() {
        System.out.println(Thread.currentThread().getName() + "-" + dateFormat.format(new Date()));
    }
    @Async // 異步
    @Scheduled(cron = "*/6 * * * * *") //每6秒打印當(dāng)前時間
    public void getTime2() {
        System.out.println(Thread.currentThread().getName() + "-" + dateFormat.format(new Date()));
    }
}
  • 運行效果

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


新聞名稱:Spring定時任務(wù)-創(chuàng)新互聯(lián)
地址分享:http://weahome.cn/article/coghsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部