消息处理线程的控制方法及装置的制造方法_2

文档序号:8258170阅读:来源:国知局
[0051]步骤S12,将确定的业务内容按照类型分为不同类型的业务,将各个不同类型的业务分别发送至对应的线程进行处理。
[0052]具体的,在业务系统中,包括客户端和应用服务器等其他业务设备,应用服务器包括消息分发器和消息处理器,消息处理器包括消息队列及处理不同类型业务的线程,将业务系统中处理业务内容的线程分为计算线程和1操作业务线程。在本实施例中,所述业务类型优选为包括计算类型和1操作类型,在本发明其他实施例还可以包括计算类型和1操作类型等其他任意适用的业务类型,在此不作一一限定。所述计算类型可以是逻辑类运算,数据的求和等,所述1操作可以是文件操作、Socket(套接口)操作或数据库操作等。当接收到业务请求消息时,所述业务请求消息可以是客户端发送过来的,也可以是业务系统中的其他业务设备的业务请求消息(上报信息),确定接收的业务请求消息中的业务内容,将确定的业务内容按照类型分为不同类型的业务,将各个不同类型的业务分别发送至对应的线程进行处理。即将确定的业务内容分为计算类型和1操作类型,将确定为计算类型的业务内容发送至计算线程进行处理,以对计算类型的业务内容进行数据求和等处理;将确定为1操作类型的业务内容发送至1操作线程进行处理,以对确定为1操作类型的业务内容进行文件操作处理、Socket操作处理或数据库操作处理。所述将不同类型的业务发送至对应类型的线程进行处理的实现方式为在对业务进行编程时,给各个不同类型的业务编辑相对应的接口标识,并通过各个下发的业务类型所携带的接口标识调度至对应接口的线程进行计算或1操作处理;将确定的业务内容分为计算类型和1操作类型也是根据其携带的接口标识来识别并进行对应接口的调度,例如,为计算业务编程为“O”的标识,将1操作业务编程为“I”的标识,通过将携带有“O”的标识的业务内容发送至计算线程进行处理,将携带有“I”标识的业务内容发送至1操作线程进行处理,也还可以是其他适用的可以区分计算业务和1操作业务的标识。为了进一步提高业务系统处理业务内容的效率,可以根据业务需要和本身业务系统的处理能力来配置不同类型线程的数量。计算线程和1线程池大小的配置对技术水平要求比较高,可以考虑由具体的业务系统收集几种常用服务器的测试数据后,给出经验配置参数或者是开发一个自动进行配置的工具,例如,该业务需求和应用服务器的处理能力计算线程的数量为100,1操作线程的数量500,为该应用服务器配置计算线程100个,1操作线程500个,其中1操作线程可以根据业务中文件操作类型、Socket操作类型及数据库操作类型进行细分,例如分别配置150、200、150个线程等,在此,线程的配置数量仅举例说明,并不将各个业务系统中配置的线程数量局限于此。
[0053]通过将接收的业务请求消息中的业务内容按类型分为不同类型的业务,将不同类型的业务内容发送至对应的不同线程进行处理,在大规模用户并发业务请求消息的情况下,降低业务请求消息在消息队列中等待的时间,进而降低业务请求的响应时间,提高业务系统的业务处理效率。
[0054]如图3所示,为本发明消息处理线程的控制方法的第二实施例的流程示意图。
[0055]基于上述第一实施例,所述业务类型包括计算类型和1操作类型,步骤S12包括:
[0056]步骤S13,将确定的业务内容按照类型分为计算业务和1操作业务,将1操作业务按照操作类型分为不同操作类型的1操作业务;
[0057]步骤S14,将分类后的计算业务发送至计算线程进行处理,将各个不同操作类型的1操作业务分别发送至对应类型的1操作线程进行处理。
[0058]具体的,将业务系统中用于处理1操作的1操作线程按照操作类型进行分类,各个分类后的1操作线程只负责对应的1操作类型的操作处理,而各个类型的1操作线程根据业务需要进行配置。当接收到业务请求消息时,确定接收的业务请求消息中的业务内容,将确定的业务内容按照类型分为不同类型的业务,将各个不同类型的业务分别发送至对应的线程进行处理。即将确定的业务内容分为计算类型和1操作类型,将确定为计算类型的业务内容发送至计算线程进行处理,以对计算类型的业务内容进行数据求和等处理;将确定为1操作类型的业务内容按照操作类型分为不同操作类型的1操作,例如,分为文件操作类型、Socket操作类型或数据库操作类型等,将各个不同操作类型的1操作业务分别发送至对应类型的1操作线程进行处理,即将各个不同类型的1操作业务发送至对应类型的1设备进行处理;以通过文件操作线程对确定为文件操作类型的1业务内容进行文件操作处理、通过Socket操作线程对确定为Socket操作类型的1业务内容进行Socket操作处理或通过数据库操作线程对确定为数据库操作类型的1业务内容进行数据库操作处理。
[0059]本实施例通过对确定为1操作类型的业务内容按照操作类型分为不同操作类型的1操作,并将不同操作类型的1操作分别发送至对应的1操作线程进行对应的操作处理,有效避免因多个业务请求争用某种类型的1设备而导致后续使用其他1设备的业务请求得不到及时处理,进一步提高业务系统的业务处理效率。
[0060]如图4所示,为本发明消息处理线程的控制方法的第三实施例的流程示意图。
[0061]基于上述第二实施例,在步骤S14之后,该方法还包括:
[0062]步骤S15,在完成1操作之后的业务内容需要进行计算业务时,将完成1操作之后的业务内容发送至所述计算线程进行处理。
[0063]具体的,在业务请求消息包括的1操作业务内容,在对应的1操作线程中完成时,例如,文件操作线程对确定为文件操作类型的1业务内容进行文件操作处理之后,构建文件操作业务的返回消息返回至所述计算线程,在该1操作类型的线程的操作完成,将该1操作类型的线程释放,供其他业务请求消息中的本类型的1操作进行文件操作处理。在完成1操作之后的业务内容需要进行计算业务时,将该构建的文件操作业务的返回消息发送至所述计算线程,该计算线程为该1操作类型的业务对应的业务请求消息中,包括的计算业务类型进行计算处理的计算线程,即对于同一个业务请求消息中涉及的计算业务都通过一个计算线程进行处理,可以使得在业务编码过程中无须考虑线程同步的问题,提高业务系统的开发效率。在本发明其他实施例中,若业务内容涉及的计算业务非常大,需要多个计算线程来处理,用户在通过用户端发送业务请求消息时保证包括的计算业务为无状态特性,以确保多个计算线程能并发进行。
[0064]同样,在执行完步骤S14之后,还可以是在完成计算操作之后的业务内容需要进行1操作业务时,将完成计算操作之后的业务内容发送至对应类型的1操作线程进行处理。
[0065]在本发明其他实施例中,为了使得在业务编码过程中无须考虑线程同步的问题,提高业务系统的开发效率,当接收到多个业务请求消息时,将多个业务请求消息中的同一类型的计算业务发送至同一个计算线程进行处理。例如,多个业务请求消息中都包括告警类型的计算业务,将这些都为告警类型的计算业务发送至同一个计算线程进行处理。
[0066]下面以具体实例来说明业务系统对业务请求消息中的业务内容进行处理的过程:
[0067]该业务系统的应用服务器根据业务需求配置有消息循环A (消息队列A、计算线程A)、消息循环B (消息队列B、计算线程B)、消息循环C (消息队列C、计算线程C);配置有1操作线程池,该1操作线程池配置有文件操作队列及其对应的文件操作线程、Socket操作队列及其对应的Socket操作线程及数据库操作队列及其对应的数据库操作线程。当接收到客户端发送来的业务请求消息时,将该业务请求消息放入消息循环A的消息队列A中,消息循环A的计算线程A从消息队列中获取该业务请求消息的计算业务进行计算处理,当计算过程需要涉及到消息循环B时,构建新的业务请求消息发送至消息循环B,消息循环A中的该业务请求消息已经处理完成,可以进行下一条业务请求消息的处理,消息循环B中的消息队列B接收到消息循环A发送过来的业务请求消息,计算线程B对接收的业务请求消息进行计算处理,当计算过程需要读取文件内容时,构造文件访问业务,将该业务请求消息发送至文件操作队列,文件操作线程读取文件内容,文件内
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1