待處理數據的兩種模型

  在業務處理時,常常會存在待處理的業務數據,在處理這部分數據時,有以下的處理方式。算法

 

  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.任務之間可能存在性能影響,也就是執行時間較長的任務長期佔據了任務處理通道,致使別的任務處理較慢。

相關文章
相關標籤/搜索