1. 程式人生 > >分散式排程框架TBSchedule原始碼解析

分散式排程框架TBSchedule原始碼解析

該類例項化排程伺服器scheduleServer,並建立HeartBeatTimerTask定時傳送心跳資訊,並根據scheduleServer數量、taskitem數量重新分配;通過getCurrentScheduleTaskItemListNow獲取當前scheduleServer的任務項,解析cron表示式,計算下次開始時間、下次結束時間,執行PauseOrResumeScheduleTask實現定時排程,到達執行開始時間,則呼叫resume()方法,根據排程任務執行緒數threadNum,生成多執行緒排程處理器BScheduleProcessorSleep,其中taskList儲存dealBean中的selectTask()方法返回值,其中必須保持一個執行緒處於未休眠狀態,用於呼叫dealBean的select()方法載入資料,如果taskList不為空,喚醒其他休眠執行緒,呼叫execute()方法處理資料。PauseOrResumeScheduleTask利用java類庫中的Timer實現定時排程,其過程主要如下: