180628 動態任務執行框架想法篇

2021-09-11 12:46:51 字數 870 閱讀 9076

目前想法已初步實現,見博文:

對於後端而言,資料訂正可算是非常非常頻繁且常見的事情了,常見的有db、快取、記憶體等資料來源中的資料訂正,對於非應用記憶體而言,其他有實體或者可以直接通過官方的提供的控制台連線進行修改的資料訂正,相對比較簡單,而對於應用記憶體,如果沒有應用內通知並處理相關邏輯,多半就只能重啟應用來實現重新整理記憶體快取了

當然我這裡說的也不是記憶體資料更新,最近遇到的乙個問題就是redis快取中的資料有問題,需要訂正,而並不是簡單的把資料刪了就行,需要根據某些資料,做一些計算,然後得出新的資料,並寫回到快取

這樣看來好像也不太麻煩,如果沒有第三方依賴,大不了寫個python指令碼或者php指令碼,重新算一下,也沒什麼毛病

然而實際情況卻並不是這樣,問題有以下幾點:

基於此,就想也公尺有辦法,可以直接搞乙個專案,可以執行groovy指令碼,在groovy指令碼中實現資料訂正邏輯?需求如下

根據上面的想法,乙個簡單的設計思路就新鮮出爐了,我們的框架核心只需要支援兩點即可:

當然為了擴充套件,以及提供更優雅的使用環境,則需要支援:

外掛程式可動態載入就更棒了

避免蛋疼的jar包衝突

專案結構圖大致如下

a. task watcher

主要用來監聽所有的task變動,包括新增,刪除or修改指令碼,然後將最新的指令碼撈出來,扔給框架

b. execute

主體的執行邏輯,主要是解析task(即groovy指令碼),並根據task的變更事件,來決定是新增,刪除還是更新任務,然後從任務池中停掉舊的任務,執行新的任務

c. plugin

這裡提供豐富的第三方外掛程式,供task呼叫

盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激

apscheduler執行定時任務框架

最簡單用法 匯入模組 from apscheduler.schedulers.blocking import blockingscheduler from datetime import datetime 建立物件 scheduler blockingscheduler 建立定時任務 觸發器為 in...

Hadoop中Map任務的執行框架

類吧。關於上面我抽象出來的這個map任務執行框架,還需要補充的是,在map任務對應的上下文執行環境context中有個任務報告器taskreporter,它被用來不斷的向這個map任務的tasktracker報告任務的執行進度 這個精度只是乙個估計值,不一定很準確 另外,有人可能會問這個map任務的...

Fork Join框架實現多工執行計算

平行計算實現1 2 100 public class counttask extends recursivetask override protected integer compute else return sum public static void main string args catc...