最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Scheduled如何會(huì)在上次任務(wù)執(zhí)行完才會(huì)執(zhí)行下次任務(wù)

 更新時(shí)間:2024年08月02日 10:49:07   作者:hashdog  
這篇文章主要介紹了Scheduled如何會(huì)在上次任務(wù)執(zhí)行完才會(huì)執(zhí)行下次任務(wù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Scheduled會(huì)在上次任務(wù)執(zhí)行完才會(huì)執(zhí)行下次任務(wù)

在使用spring的Scheduled定時(shí)任務(wù)

擔(dān)心同一任務(wù),

第一次開(kāi)始未執(zhí)行完就執(zhí)行第二次任務(wù),所以給加了synchronized,

但是后面經(jīng)過(guò)測(cè)試Scheduled定時(shí)任務(wù)會(huì)在上次任務(wù)結(jié)束時(shí)再執(zhí)行第二次任務(wù),

如果第二次任務(wù)堵在哪里了,時(shí)間會(huì)順延

package xyz.hashdog.job;

import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @author th
 * @description: 定時(shí)任務(wù)測(cè)試
 * @projectName hashdog-ds
 * @date 2020/2/1223:07
 */
@Component
@Slf4j
@AllArgsConstructor
public class TestCrontab {
    private static final Object KEY = new Object();

    private static boolean taskFlag = false;

    @Scheduled(cron = "*/5 * * * * ?")
    public void pushCancel() {
        System.out.println("進(jìn)來(lái)了");
        synchronized (KEY) {
            if (TestCrontab.taskFlag) {
                System.out.println("測(cè)試調(diào)度已經(jīng)啟動(dòng)");
                log.warn("測(cè)試調(diào)度已經(jīng)啟動(dòng)");
                return;
            }
            TestCrontab.taskFlag = true;
        }

        try {
            for (int i =0;i<=10;i++){
                System.out.println("執(zhí)行:"+i);
                Thread.sleep(2000);
            }
        } catch (Exception e) {
            log.error("測(cè)試調(diào)度執(zhí)行出錯(cuò)", e);
        }

        TestCrontab.taskFlag = false;

        log.warn("測(cè)試調(diào)度執(zhí)行完成");
    }


}

注釋掉synchronized

執(zhí)行效果一樣,并沒(méi)有線程安全問(wèn)題

package xyz.hashdog.job;

import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @author th
 * @description: 定時(shí)任務(wù)測(cè)試
 * @projectName hashdog-ds
 * @date 2020/2/1223:07
 */
@Component
@Slf4j
@AllArgsConstructor
public class TestCrontab {
    private static final Object KEY = new Object();

    private static boolean taskFlag = false;

    @Scheduled(cron = "*/5 * * * * ?")
    public void pushCancel() throws InterruptedException {
        System.out.println("進(jìn)來(lái)了");
//        synchronized (KEY) {
//            if (TestCrontab.taskFlag) {
//                System.out.println("測(cè)試調(diào)度已經(jīng)啟動(dòng)");
//                log.warn("測(cè)試調(diào)度已經(jīng)啟動(dòng)");
//                return;
//            }
//            TestCrontab.taskFlag = true;
//        }
//
//        try {
            for (int i =0;i<=10;i++){
                System.out.println("執(zhí)行:"+i);
                Thread.sleep(2000);
            }
//        } catch (Exception e) {
//            log.error("測(cè)試調(diào)度執(zhí)行出錯(cuò)", e);
//        }
//
//        TestCrontab.taskFlag = false;

        log.warn("測(cè)試調(diào)度執(zhí)行完成");
    }


}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

治县。| 乐东| 丹巴县| 宁远县| 中卫市| 大新县| 柯坪县| 石泉县| 兰溪市| 大埔县| 东兴市| 且末县| 天祝| 抚宁县| 和政县| 莎车县| 新闻| 六盘水市| 寻甸| 西盟| 万州区| 驻马店市| 武夷山市| 绥滨县| 中宁县| 桓台县| 华安县| 车险| 凯里市| 淄博市| 汽车| 宜宾市| 静安区| 青神县| 永清县| 高唐县| 永登县| 桦南县| 余干县| 忻城县| 留坝县|