待处理数据的两种模型

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

 

  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.任务之间可能存在性能影响,也就是执行时间较长的任务长期占据了任务处理通道,导致别的任务处理较慢。

posted on 2014-07-22 20:32  南郭先生kaka  阅读(1320)  评论(0编辑  收藏  举报

导航