利用生产者消费者模式实现串行的任务并行化

      

     试想,一个省有100个处理节点需要监控,全国加起来有上1000,如果我们需要对这些节点进行监控,或则向他们发送处理莫个任务的指令,或者中断,或者定时执行,立即执行 需要怎么处理?

     我们知道,如果我们直接这样做,指挥者说你去做任务A,当你还没结束时,指挥者又说你去做任务B,或者说任务C需要定时执行,这样的话,任务的执行者将会非常的忙碌,苦不堪言。

 

通过生产者与消费者模式,可以让程序更加的灵活,指挥者有一个任务,那么这个时候只需要将任务发布出去,任务的执行者有多个,哪个空闲哪个就去执行任务,还可以设定专用的任务执行者执行特殊的任务。

利用ActiveMQ的队列,可以实现这一点

 

 首先把任务归类,比如立即执行的,定时执行的,执行一次的,需要中断的,在ActiveMq里声明多个队列,一个队列负责存放一类任务,这样一来,上游通过程序向MQ定时发送任务到队列里,下游,这个时候可以采用多线程,或者多进程的方式来获取任务进行处理,同时,如果一台机器的处理能力不够,那么可以增加机器,复制做个进程来处理,这样一来,就姐姐了性能的问题

 

 

 

   

 

你可能感兴趣的:(生产者消费者)