任務之間要麼就是有依賴關係例如:A依賴B,B依賴C,要麼就是獨立的,無依賴關係,這個時候爲了提升任務的執行效率,咱們能夠把這些任務柔和成一個定時任務來執行:數據庫
假設:A依賴B,B依賴C,那麼C並不依賴其餘任務,能夠首先執行,B須要等C執行完才能夠執行,A須要等B、C執行完才能夠執行,線程
一、數據庫中建立表Sync,主要用來記錄任務間的依賴關係,字段:id,name,depend,status日誌
例如:任務A Sync(1,'A','B','Y') ,任務B Sync(2,'B','C','Y'),任務C Sync(3,'C',,'Y')blog
2: 把Sync表中的任務讀取出來,建立任務執行日誌 tasklog:字段:id,taskid,date,status,status有3中狀態:ready、failure、success效率
對於任務C這種不須要依賴其餘任務的status設置爲readydate
須要依賴其餘任務的status設置爲failure定時任務
三、任務的執行日誌status爲ready的放入線程池中去執行,failure的忽略線程池
四、當線程池中的任務C執行完成後,判斷是否有後繼任務,沒有就退出,有的話判斷該後繼任務(任務B)的前驅任務是否有執行完,執行完就設置該後繼任務的狀態爲ready,循環執行三、4,直到全部任務執行完。循環