DatumController::addDatum // /datum.do?method=addDatum PersistService::addAggrConfigInfo MergeDatumService::addMergeTask // 添加一個MergeDataTask,異步處理 MergeTaskProcessor::process PersistService::insertOrUpdate EventDispatcher.fireEvent(new ConfigDataChangeEvent // 派發一個ConfigDataChangeEvent事件 NotifyService::onEvent // 接收事件并處理 TaskManager::addTask(..., new NotifyTask // 由此,當數據發生變動,則最終創建了一個NoticyTask // NotifyTask同樣異步處理 NotifyTaskProcessor::process foreach server in serverList // 包含自己 notifyToDump // 調用 /notify.do?method=notifyConfigInfo 從mysql更新變動的數據 DatumController::addDatum // /datum.do?method=addDatum PersistService::addAggrConfigInfo MergeDatumService::addMergeTask // 添加一個MergeDataTask,異步處理 MergeTaskProcessor::process PersistService::insertOrUpdate EventDispatcher.fireEvent(new ConfigDataChangeEvent // 派發一個ConfigDataChangeEvent事件 NotifyService::onEvent // 接收事件并處理 TaskManager::addTask(..., new NotifyTask // 由此,當數據發生變動,則最終創建了一個NoticyTask // NotifyTask同樣異步處理 NotifyTaskProcessor::process foreach server in serverList // 包含自己 notifyToDump // 調用 /notify.do?method=notifyConfigInfo 從mysql更新變動的數據 |