Re: [問題] 請問有辦法設定編號來決定排程嗎
※ 引述《PTTCATKING (懷念美國貓王)》之銘言:
: 假設有二十個任務要跑
: 而他在DB裡會有兩組編號(欄位名稱)
: 第一組是1~20的流水號
: 第二組是執行優先順序(記錄需等待的對象)
: A 跑完 同時執行 B & CD 兩條線同時跑,而B會先跑完,但要等CD都跑完後,BCD都結束
: 才開始跑E
: A的編號就是 1 0 (無等待對象)
: B的編號就是 2 1 (等待A,1是A的編號)
: C的編號就是 3 1 (等待A,1是A的編號)
: D的編號就是 4 3 (等待C,3是C的編號)
: E的編號就是 5 2 (等待B,2是B的編號)
: E的編號就是 5 4 (等待D,4是D的編號)
: 因為E要等兩個,所以在DB裡 E 會有兩筆資料
: 請問 有沒有什麼現有套件有能夠執行這件事情呢
: 設定那兩個編號,則程式執行後就按照兩個編號,決定程式優先順序,並有可能同時執行
: 多程序
: 以後維護就是設定編號就能決定跑程式的優先順序
: 今天用CountDownLatch寫出類似的東西,被認為是寫死的東西orz
: 這是用排程器???或是什麼方向呢?? @O@
: 能否有高手指點明燈給我方向,謝謝 T_T
可以用java8的CompletableFuture啊
class MyTask implements Runnable {
private String name;
public MyTask(String name) {
this.name = name;
}
public void run() {
try {
System.out.printf("Task %s\n", name);
Thread.sleep((long) (new Random().nextDouble() * 1000));
System.out.printf("Task %s complete\n", name);
} catch (Exception e){}
}
}
public class Scheduler {
public static void main(String[] args) throws ExecutionException, InterruptedException {
ExecutorService executor = Executors.newFixedThreadPool(3);
CompletableFuture<Void> a = CompletableFuture
.allOf()
.thenRunAsync(new MyTask("a"), executor);
CompletableFuture<Void> b = CompletableFuture
.allOf(a)
.thenRunAsync(new MyTask("b"), executor);
CompletableFuture<Void> c = CompletableFuture
.allOf(a)
.thenRunAsync(new MyTask("c"), executor);
CompletableFuture<Void> d = CompletableFuture
.allOf(c)
.thenRunAsync(new MyTask("d"), executor);
CompletableFuture<Void> e = CompletableFuture
.allOf(b, d)
.thenRunAsync(new MyTask("e"), executor);
CompletableFuture<Void> all = CompletableFuture
.allOf(a,b,c,d,e);
all.get();
System.out.print("Complete");
executor.shutdown();
}
}
出來結果
Task a
Task a complete
Task c
Task b
Task b complete
Task c complete
Task d
Task d complete
Task e
Task e complete
Complete
因為用random sleep,所以每次結果會稍微不同喲!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.17.146
※ 文章網址: http://www.ptt.cc/bbs/java/M.1415887801.A.14C.html
※ 編輯: popcorny (1.171.17.146), 11/13/2014 22:20:38
推
11/13 22:20, , 1F
11/13 22:20, 1F
→
11/17 09:51, , 2F
11/17 09:51, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 5 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章