日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

面試官:一個子任務要依賴兩個父任務完成才能執(zhí)行,該怎么設計?

來源: 責編: 時間:2024-09-10 09:44:01 184觀看
導讀大家好,我是君哥。今天分享一道面試題。面試官:有一個場景,如果一個子任務的執(zhí)行,要依賴兩個父任務執(zhí)行完成后才能執(zhí)行,該怎么設計? 我:可以設置兩個父任務的信號,父任務執(zhí)行完成后更新信號已完成。子任務被觸發(fā)時判斷兩個父

大家好,我是君哥。今天分享一道面試題。TsC28資訊網——每日最新資訊28at.com

面試官:有一個場景,如果一個子任務的執(zhí)行,要依賴兩個父任務執(zhí)行完成后才能執(zhí)行,該怎么設計? TsC28資訊網——每日最新資訊28at.com

:可以設置兩個父任務的信號,父任務執(zhí)行完成后更新信號已完成。子任務被觸發(fā)時判斷兩個父任務是否執(zhí)行完成,只有兩個父任務都執(zhí)行完成,子任務才會執(zhí)行。如果條件不滿足,就先掛起。下面是一段示例代碼:TsC28資訊網——每日最新資訊28at.com

private static AtomicInteger parentTask1 = new AtomicInteger(0);private static AtomicInteger parentTask2 = new AtomicInteger(0);private static Object locker = new Object();public static void main(String[] args) throws InterruptedException { Thread childThread = new Thread(() -> {  while (true) {   try {    synchronized (locker) {     if (parentTask1.get() == 1 && parentTask2.get() == 1) {      //doSomething      break;     }     locker.wait();    }   } catch (InterruptedException e) {    e.printStackTrace();   }  } }); childThread.start(); Thread parentThread1 = new Thread(() -> {  parentTask1.incrementAndGet();  synchronized (locker){   locker.notifyAll();  } }); parentThread1.start();}

父任務執(zhí)行完成后喚醒子任務。TsC28資訊網——每日最新資訊28at.com

面試官:有其他方法嗎? TsC28資訊網——每日最新資訊28at.com

:也可以使用 CompletableFuture,使用任務依賴來控制任務執(zhí)行,下面是一個示例代碼:TsC28資訊網——每日最新資訊28at.com

CompletableFuture<Boolean> parentTask1 = CompletableFuture.supplyAsync(() -> { System.out.println("doParentTask1"); return true;});CompletableFuture<Boolean> parentTask2 = CompletableFuture.supplyAsync(() -> { System.out.println("doParentTask2"); return true;});CompletableFuture childTask = CompletableFuture.allOf(parentTask1, parentTask2);childTask.thenApply(c -> { try {  if (parentTask1.get() && parentTask2.get()){   System.out.println("doChildTask");  } } catch(Exception e) {  e.printStackTrace(); } finally {  System.out.println("child task do error"); } return c;});childTask.join();

面試官:那在分布式場景或集群環(huán)境下,前面說的方案可以解決問題嗎? TsC28資訊網——每日最新資訊28at.com

:分布式場景或者集群環(huán)境下,肯定是不能使用上面的線程調度方案的,因為多個任務可能跑在不同進程里。TsC28資訊網——每日最新資訊28at.com

面試官:現在開源的分布式任務調度框架有很多,比如 xxl-job、PowerJob,有這個場景相關的調度方案嗎? TsC28資訊網——每日最新資訊28at.com

:目前的任務調度框架支持子任務配置,但是還沒有子任務依賴兩個父任務執(zhí)行結果這個場景的配置。TsC28資訊網——每日最新資訊28at.com

面試官:那有什么方案可以解決分布式場景下的問題嗎? TsC28資訊網——每日最新資訊28at.com

:我想到一個簡單的方案,可以在數據庫或緩存中維護一個父任務的狀態(tài)標志,比如一張狀態(tài)表保存 parentTask1、parentTask2 這兩個任務狀態(tài),每當子任務被觸發(fā)時先查一下這兩個狀態(tài)是否都被更新成 1,如果是再執(zhí)行業(yè)務邏輯,否則直接退出任務。TsC28資訊網——每日最新資訊28at.com

面試官:你說的這個方案,如果只跑一次,還可以,如果任務執(zhí)行比較頻繁,比如兩個父任務每分鐘跑一次,子任務也會每分鐘都會被觸發(fā)。你這個方案能滿足要求嗎? TsC28資訊網——每日最新資訊28at.com

:一分鐘頻率太高了,需要記錄每次父任務的狀態(tài),而且同一個父任務每分鐘執(zhí)行的狀態(tài)要能區(qū)分開。因為可能有極端的情況,parentTask1 上一分鐘的還沒有跑完,但 parentTask2 下一分鐘的已經跑完了,父子任務關聯會出現混亂,如果子任務依賴父任務跑批產生的數據,就會出問題。TsC28資訊網——每日最新資訊28at.com

面試官:嗯,你說的這個情況是存在的,如果讓你設計,你會怎么解決呢TsC28資訊網——每日最新資訊28at.com

:可以給父子任務賦值一個 taskId,根據這個 taskId 來做關聯。比如 parentTask1 的 taskId 是 P202409100000011,parentTask2 配套的 taskId 是 P202409100000012,子任務配套的 taskId 是 P202409100000013。子任務被觸發(fā)時,根據 P202409100000013 來判斷  P202409100000011 和 P202409100000012 是否執(zhí)行完成。子任務下一次觸發(fā)時,taskId 就是 P202409100000023,下下次就是 P202409100000033,每次子任務 Id 都是根據父任務 taskId 計算出來。TsC28資訊網——每日最新資訊28at.com

面試官:這個 taskId 怎么生成和關聯,有思路嗎? TsC28資訊網——每日最新資訊28at.com

:這個還是有點難度的。我說一個思路,不一定好。我們定義一張表,如下圖:TsC28資訊網——每日最新資訊28at.com

圖片圖片TsC28資訊網——每日最新資訊28at.com

給這個場景定義一個自增 id,這個 id 由 parentTask1 來獲取,獲取后先進行記錄再執(zhí)行任務。parentTask2 啟動時,找到 parentTask1 有值但是 parentTask2 為空的記錄。先根據 parentTask1 的記錄taskId 計算出自己的 taskId,然后保存數據庫。而子任務被觸發(fā)時,從表里查詢已經有 parent_task1_id 和 parent_task2_id 并且兩個狀態(tài)都為 1,但是沒有 child_task_id 的記錄,更新 child_task_id 字段,然后執(zhí)行任務邏輯。TsC28資訊網——每日最新資訊28at.com

面試官:恭喜你進入下一輪。TsC28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-112704-0.html面試官:一個子任務要依賴兩個父任務完成才能執(zhí)行,該怎么設計?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Asp.Net Core實戰(zhàn)-MiniProfiler性能分析

下一篇: 在PHP編程中,將數據快速轉換為JSON格式

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲激情在线激情| 亚洲国产一区二区三区高清| 欧美电影免费| 欧美精品偷拍| 国产精品久久久久影院亚瑟| 国产一区二区三区不卡在线观看| 亚洲大胆视频| 一个色综合导航| 欧美一级视频一区二区| 蜜臀av国产精品久久久久| 欧美日本精品一区二区三区| 国产精品视频不卡| 在线观看日韩| 亚洲一区精品在线| 麻豆成人精品| 国产精品久久久久影院色老大 | 亚洲精品乱码久久久久久日本蜜臀| 99精品欧美一区二区三区综合在线| 小黄鸭视频精品导航| 欧美成年人网站| 国产情人节一区| 亚洲三级免费观看| 欧美在线免费视频| 欧美日韩在线播| 亚洲高清影视| 欧美怡红院视频| 欧美日韩另类丝袜其他| 激情亚洲网站| 亚洲一区二区三区欧美| 免费看亚洲片| 国产婷婷精品| 亚洲午夜精品一区二区| 欧美激情在线观看| 在线观看日韩av电影| 亚洲欧美日韩中文在线制服| 欧美国产日韩精品| 黄网动漫久久久| 欧美亚洲免费高清在线观看| 欧美日韩免费一区二区三区| 伊人成年综合电影网| 欧美亚洲日本国产| 欧美性感一类影片在线播放| 亚洲国产精品第一区二区| 欧美在线国产精品| 国产精品天天看| 一本色道久久综合亚洲91| 美女诱惑黄网站一区| 国产欧美视频在线观看| 99视频在线观看一区三区| 久久夜色精品国产噜噜av| 国产欧美日韩在线观看| 中文无字幕一区二区三区| 欧美福利一区| 在线精品国精品国产尤物884a| 午夜伦理片一区| 国产精品成人在线| 99国产欧美久久久精品| 欧美精品18videos性欧美| 亚洲电影第三页| 久热精品在线视频| 狠狠爱综合网| 久久精品亚洲一区二区三区浴池| 国产精品一区二区你懂得| 99精品欧美一区| 欧美日本在线一区| 亚洲人成网站在线播| 母乳一区在线观看| 亚洲福利小视频| 噜噜噜在线观看免费视频日韩| 精品999在线观看| 久久久久99| 激情一区二区三区| 久久久人人人| 在线免费观看日本欧美| 久久午夜激情| 伊人夜夜躁av伊人久久| 久久视频在线视频| 精品成人在线观看| 浪潮色综合久久天堂| 1000部精品久久久久久久久| 老巨人导航500精品| 亚洲成人资源| 欧美成人精品h版在线观看| 亚洲国产欧美日韩另类综合| 欧美高清日韩| 在线视频你懂得一区| 国产精品s色| 亚洲欧美日韩国产成人| 国产精品一区二区在线观看| 欧美专区日韩视频| 精品盗摄一区二区三区| 蜜臀久久99精品久久久久久9| 亚洲国产日韩一区二区| 欧美区一区二区三区| 9l国产精品久久久久麻豆| 欧美吻胸吃奶大尺度电影| 亚洲在线视频免费观看| 国产一区二区三区免费不卡| 久久久午夜电影| 亚洲激情视频在线观看| 欧美日韩午夜| 久久aⅴ国产欧美74aaa| 在线观看日韩欧美| 欧美精品99| 亚洲欧美激情一区| 国产一区二区三区黄视频| 美玉足脚交一区二区三区图片| 亚洲欧洲精品一区二区三区不卡| 欧美日本韩国一区二区三区| 亚洲永久免费| 激情成人av| 欧美破处大片在线视频| 午夜精品成人在线视频| 精品成人在线观看| 欧美日韩激情小视频| 午夜精品美女久久久久av福利| 国语自产精品视频在线看| 欧美国产高清| 午夜在线精品偷拍| 亚洲激情国产| 国产精品萝li| 久久在线播放| 亚洲一区二区三区在线看| 韩国视频理论视频久久| 欧美精品少妇一区二区三区| 午夜精品久久久久久99热软件| 一区二区在线视频观看| 欧美色道久久88综合亚洲精品| 欧美影院久久久| 亚洲精品裸体| 国产一区二区看久久| 欧美精品一区二区三区高清aⅴ| 亚洲欧美日韩久久精品| 亚洲国产欧美国产综合一区 | 国产在线视频欧美| 欧美日本精品一区二区三区| 午夜久久电影网| 亚洲福利视频免费观看| 国产精品一区三区| 欧美美女喷水视频| 久久久久久婷| 亚洲午夜精品17c| 亚洲国产精品视频一区| 国产精品一区二区久久| 欧美大色视频| 久久精品国产99精品国产亚洲性色 | 亚洲天堂av在线免费| 在线播放亚洲| 国产精品羞羞答答| 欧美黄在线观看| 久久国内精品视频| 在线一区二区日韩| 在线观看视频一区| 国产日本亚洲高清| 欧美日韩精品在线播放| 久久先锋资源| 欧美伊久线香蕉线新在线| 一本色道久久综合狠狠躁篇怎么玩| 国内综合精品午夜久久资源| 国产精品成人av性教育| 欧美大片在线看| 久久精品欧美日韩| 亚洲欧美日韩国产一区| 在线亚洲伦理| 亚洲三级影院| 亚洲国产高清一区二区三区| 国产亚洲欧美一区在线观看| 国产精品国内视频| 欧美区日韩区| 欧美freesex8一10精品| 久久er精品视频| 亚洲欧美久久久久一区二区三区| 亚洲毛片在线| 亚洲国内在线| 亚洲丁香婷深爱综合| 永久免费视频成人| 国产一区二区三区高清在线观看 | 欧美风情在线观看| 美女露胸一区二区三区| 久久激五月天综合精品| 欧美一区二区性| 午夜天堂精品久久久久| 亚洲一区二区视频在线| 国产精品99久久久久久有的能看| 亚洲精品免费网站| 91久久国产综合久久| 在线成人激情黄色| 在线电影欧美日韩一区二区私密| 国产在线观看精品一区二区三区| 国产老女人精品毛片久久| 国产精品―色哟哟| 国产精品实拍| 国产精品亚洲一区| 国产精品性做久久久久久| 国产精品老牛| 国产精品亚洲产品| 国产视频久久久久久久| 国产日韩欧美三区| 国产视频综合在线| 国产亚洲精品久久久久动| 国产亚洲欧美一区二区三区| 国产亚洲一二三区| 韩国精品在线观看| 在线精品福利|