zoukankan      html  css  js  c++  java
  • 待处理数据的两种模型

      在业务处理时,经常会存在待处理的业务数据,在处理这部分数据时,有如下的处理方式。

      Worker模型:包含Worker处理类(Processor),调度处理框架,时间规则配置。

          Worker处理类,待处理业务数据的处理类。

          调度处理框架,根据时间配置的规则, 在指定的时间点内,调用worker处理类。

          时间规则配置,设置worker处理类的启动时间以及频率。

      优点:1.实现简单,现在有Spring和Quartz框架,直接配置好时间表达式之后以及处理器之后,就可以直接执行了。

         2.各种Worker之间相互独立互补影响。

      缺点:1.并行处理时(多Worker执行时),每个worker需要处理重复处理业务数据的问题,也就是并发的时候,会重复处理相同的数据。

         2.并行处理时的性能要想获得并行数同样的效率就需要在worker里面进行算法优化处理。

         3.每一种业务数据需要配置一个worker。

         4.各种worker之间的性能不能共享,也就是多种worker各自管理各自的业务数据处理,即使有的worker空闲,也不能处理忙碌worker的数据。

      任务(Task)模型:包括任务仓库,任务,任务处理类,任务管理器。

          任务仓库,存储所有的任务。

          任务,每一条待处理的数据生成一条任务数据,保存到任务仓库中,该任务保存待处理业务数据的主键。

          任务处理类,根据任务中保存的主键,获取到业务数据,根据业务规则进行处理业务数据。

          任务管理器,定期从任务仓库中获取到任务,根据任务的类型获取到任务的处理类进行处理任务。

      优点:1.可以并行处理,任务管理器进行处理并发问题。

         2.性能可以共享,任务之间也可以混合执行处理。

      缺点:1.任务之间可能存在性能影响,也就是执行时间较长的任务长期占据了任务处理通道,导致别的任务处理较慢。

  • 相关阅读:
    “Metro”,移动设备视觉语言的新新人类
    三个排序
    window.location.reload;刷新
    2012年7月4日
    PDO基础(一)
    php数组
    smarty(原理概述)
    php函数
    jquery Poshy Tip
    WAMP:PHP基础(一)
  • 原文地址:https://www.cnblogs.com/kaka/p/3861310.html
Copyright © 2011-2022 走看看