在業務處理時,常常會存在待處理的業務數據,在處理這部分數據時,有以下的處理方式。算法
Worker模型:包含Worker處理類(Processor),調度處理框架,時間規則配置。併發
Worker處理類,待處理業務數據的處理類。框架
調度處理框架,根據時間配置的規則, 在指定的時間點內,調用worker處理類。性能
時間規則配置,設置worker處理類的啓動時間以及頻率。優化
優勢:1.實現簡單,如今有Spring和Quartz框架,直接配置好時間表達式以後以及處理器以後,就能夠直接執行了。spa
2.各類Worker之間相互獨立互補影響。效率
缺點:1.並行處理時(多Worker執行時),每一個worker須要處理重複處理業務數據的問題,也就是併發的時候,會重複處理相同的數據。配置
2.並行處理時的性能要想得到並行數一樣的效率就須要在worker裏面進行算法優化處理。sso
3.每一種業務數據須要配置一個worker。並行
4.各類worker之間的性能不能共享,也就是多種worker各自管理各自的業務數據處理,即便有的worker空閒,也不能處理忙碌worker的數據。
任務(Task)模型:包括任務倉庫,任務,任務處理類,任務管理器。
任務倉庫,存儲全部的任務。
任務,每一條待處理的數據生成一條任務數據,保存到任務倉庫中,該任務保存待處理業務數據的主鍵。
任務處理類,根據任務中保存的主鍵,獲取到業務數據,根據業務規則進行處理業務數據。
任務管理器,按期從任務倉庫中獲取到任務,根據任務的類型獲取到任務的處理類進行處理任務。
優勢:1.能夠並行處理,任務管理器進行處理併發問題。
2.性能能夠共享,任務之間也能夠混合執行處理。
缺點:1.任務之間可能存在性能影響,也就是執行時間較長的任務長期佔據了任務處理通道,致使別的任務處理較慢。