1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      怎么在SpringBoot中實(shí)現(xiàn)一個異步任務(wù)

      怎么在SpringBoot中實(shí)現(xiàn)一個異步任務(wù)?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

      創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括秭歸網(wǎng)站建設(shè)、秭歸網(wǎng)站制作、秭歸網(wǎng)頁制作以及秭歸網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,秭歸網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到秭歸省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

      步驟,如圖所示:

      怎么在SpringBoot中實(shí)現(xiàn)一個異步任務(wù)

      1.添加異步任務(wù)業(yè)務(wù)類

      package top.ytheng.demo.task;
      
      import java.util.concurrent.Future;
      
      import org.springframework.scheduling.annotation.Async;
      import org.springframework.scheduling.annotation.AsyncResult;
      import org.springframework.stereotype.Component;
      
      //異步任務(wù)業(yè)務(wù)類
      @Component
      //標(biāo)記此類是異步類,也可在方法中標(biāo)記
      //不加,則類里面的方法為同步執(zhí)行
      @Async
      public class AsyncTask {
      
        public void task1() throws InterruptedException {
          long begin = System.currentTimeMillis();
          Thread.sleep(1000);
          long end = System.currentTimeMillis();
          System.out.println("任務(wù)1耗時:" + (end - begin));
        }
        
        public void task2() throws InterruptedException {
          long begin = System.currentTimeMillis();
          Thread.sleep(2000);
          long end = System.currentTimeMillis();
          System.out.println("任務(wù)2耗時:" + (end - begin));
        }
        
        public void task3() throws InterruptedException {
          long begin = System.currentTimeMillis();
          Thread.sleep(3000);
          long end = System.currentTimeMillis();
          System.out.println("任務(wù)3耗時:" + (end - begin));
        }
        
        //測試拿到返回結(jié)果
        public Future task4() throws InterruptedException {
          long begin = System.currentTimeMillis();
          Thread.sleep(1000);
          long end = System.currentTimeMillis();
          System.out.println("任務(wù)4耗時:" + (end - begin));
          return new AsyncResult("任務(wù)4");
        }
        
        public Future task5() throws InterruptedException {
          long begin = System.currentTimeMillis();
          Thread.sleep(2000);
          long end = System.currentTimeMillis();
          System.out.println("任務(wù)5耗時:" + (end - begin));
          return new AsyncResult("任務(wù)5");
        }
        
        public Future task6() throws InterruptedException {
          long begin = System.currentTimeMillis();
          Thread.sleep(3000);
          long end = System.currentTimeMillis();
          System.out.println("任務(wù)6耗時:" + (end - begin));
          return new AsyncResult("任務(wù)6");
        }
      }

      2.添加測試控制器

      package top.ytheng.demo.controller;
      
      import java.util.concurrent.ExecutionException;
      import java.util.concurrent.Future;
      
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.web.bind.annotation.GetMapping;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RestController;
      
      import top.ytheng.demo.task.AsyncTask;
      
      @RestController
      @RequestMapping("api/v1/async")
      public class TaskController {
      
        @Autowired
        private AsyncTask asyncTask;
        
        @GetMapping("/test")
        public Object test() throws InterruptedException, ExecutionException {
          long begin = System.currentTimeMillis();
          //asyncTask.task1();
          //asyncTask.task2();
          //asyncTask.task3();
          Future result1 = asyncTask.task4();
          Future result2 = asyncTask.task5();
          Future result3 = asyncTask.task6();
          System.out.println("返回結(jié)果:" + result1.get() + "," + result2.get() + "," + result3.get());
          for(;;) {
            if(result1.isDone() && result2.isDone() && result3.isDone()) {
              break;
            }
          }
          long end = System.currentTimeMillis();
          long total = end - begin;
          System.out.println("總耗時:" + total);
          return "總耗時:" + total;
        }
      }

      3.添加啟動類

      package top.ytheng.demo;
      
      import org.mybatis.spring.annotation.MapperScan;
      import org.springframework.scheduling.annotation.EnableAsync;
      import org.springframework.scheduling.annotation.EnableScheduling;
      
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import org.springframework.boot.web.servlet.ServletComponentScan;
      
      @SpringBootApplication //等于下面3個
      //@SpringBootConfiguration
      //@EnableAutoConfiguration
      //@ComponentScan
      //攔截器用到
      @ServletComponentScan
      //MyBatis用到
      @MapperScan("top.ytheng.demo.mapper")
      //定時使用(開啟定時任務(wù))
      @EnableScheduling
      //開啟異步任務(wù)
      @EnableAsync
      public class DemoApplication {
      
        public static void main(String[] args) {
          SpringApplication.run(DemoApplication.class, args);
        }
      }

      4.右鍵項(xiàng)目Run As啟動,訪問url

      http://localhost:8080/api/v1/async/test

      結(jié)果:

      怎么在SpringBoot中實(shí)現(xiàn)一個異步任務(wù)

      看完上述內(nèi)容,你們掌握怎么在SpringBoot中實(shí)現(xiàn)一個異步任務(wù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


      網(wǎng)站欄目:怎么在SpringBoot中實(shí)現(xiàn)一個異步任務(wù)
      文章URL:http://ef60e0e.cn/article/jsehis.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        天镇县| 晴隆县| 建平县| 彩票| 琼结县| 扬州市| 万荣县| 全南县| 辉南县| 阿城市| 华容县| 日喀则市| 金川县| 东港市| 扶沟县| 新泰市| 奉贤区| 察雅县| 新乡县| 筠连县| 桃江县| 娄底市| 万载县| 竹北市| 河北区| 唐山市| 柏乡县| 承德市| 宁德市| 谢通门县| 和平县| 延长县| 明光市| 温泉县| 唐山市| 定南县| 桃江县| 石嘴山市| 同江市| 贵溪市| 平顺县|