多线程动态处理业务的方法、电子设备和可读存储介质技术

技术编号:19176780 阅读:15 留言:0更新日期:2018-10-17 00:15
本发明专利技术提供一种多线程动态处理业务的方法、电子设备和可读存储介质。该方法包括:根据配置文件中的相关配置,启动多个线程;线程按照配置文件中的相关的配置到线程安全容器中抽取需要解析的报文;线程开始解析被抽取出的报文;以及根据解析出的报文以及配置文件中相关的配置进行相应的操作以及报文持久化。此外,本发明专利技术还涉及用于执行上述多线程动态处理业务的方法的电子设备和非暂态计算机可读存储介质。

Multi thread dynamic processing method, electronic device and readable storage medium

The invention provides a multi-threaded dynamic processing service method, an electronic device and a readable storage medium. The method includes: starting multiple threads according to the configuration in the configuration file; extracting the packets to be parsed according to the configuration in the configuration file; starting to parse the extracted packets by the thread; and corresponding according to the parsed packets and the configuration in the configuration file. Operation and message persistence. In addition, the invention also relates to electronic devices and non-transient computer-readable storage media for performing the multithreaded dynamic processing service described above.

【技术实现步骤摘要】
多线程动态处理业务的方法、电子设备和可读存储介质
本专利技术涉及计算机
,尤其涉及一种多线程动态处理业务的方法、电子设备和计算机可读存储介质。
技术介绍
由于互联网业务量急剧增长且业务模式变化多样,这就需要业务系统对大量且变动频繁的业务表进行处理。现有技术的WORK轮询处理通常定时读取数据库或者其他来源的数据以进行指定的逻辑处理,独立完成对订单的读取和处理。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:现有技术的轮询处理本身是单线程处理,需要在上一个任务完成后才能开始新的任务。虽然它也可以同时配置多个进程,分别读取订单来源数据中属于自己的那份数据,这样就从单进程处理变为多进程处理了,但这样做同时增加了应用服务开销,而且处理的业务表必须是确定的,如果业务表增加了或是修改了,就需要修改原有的代码,存在很强的耦合性。
技术实现思路
有鉴于此,本专利技术实施例提供一种多线程动态处理业务的方法、电子设备和计算机可读存储介质,能够解决在业务表不确定时可能无法进行开发的问题,从而实现高效的业务多线程动态处理,同时降低功能与功能之间的耦合性,增加目标业务类的可配置性。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种多线程动态处理业务的方法。根据本专利技术实施例的多线程动态处理业务的方法提供了一个多线程处理的框架,主要结构设计为可配置多线程、可配置业务表操作等功能,具体内部分为:线程安全容器、报文抽取、报文解析、业务表操作反射、负载均衡以及负载监控等功能。根据本专利技术实施例的多线程动态处理业务的方法主要包括如下步骤:步骤①和步骤②:启动线程后,线程首先会到线程安全容器中抽取需要解析的报文。如果线程安全容器中没有报文,则会到持久化报文数据库中抽取报文,放入到线程安全容器中。在这个抽取报文的过程中需要一些相关的需要配置到配置文件中的配置准备。步骤③和步骤④:当线程安全容器中有报文时,则从线程安全容器中抽取出一条报文,并在线程安全容器中删除这一条报文。此时,这条线程就开始处理抽取出的这条报文。如果执行成功了,就再去抽取下一条报文,直到线程安全容器中无报文后,再重复步骤①的操作。如果执行失败了,则在持久化报文数据库中标记这一条报文异常的数据,并进行相应的事务回滚,然后继续执行下一条报文。步骤⑤:根据解析的报文、配置文件中配置的需要加载的类、需要执行的方法和/或参数来进行相应的操作以及报文持久化。接下来,对线程内部的报文解析以及业务表操作进行说明。在步骤④中,在线程中开始处理从线程安全容器抽取出的报文,这时需要对报文进行解析。报文可以具有任意适合在线程中进行处理的格式,例如json(JavaScript对象表示法)或xml(可扩展标示语言)。根据不同的格式进行不同的解析操作,也可以扩展解析的功能。解析报文后将需要的内容储存在数据的集合中(这里可以使用Map、JAVA语言中的集合)或是缓存中,并记录下数据位置的标记(key)。然后,根据业务表的配置文件读取需要执行的方法和参数,并通过记录的标记(key)来取得参数值。最后,通过编程语言中的反射技术来执行方法。通过反射技术可以动态地获取类的成员,在不改动源代码的情况下对类进行修改,这样做就可以通过反射技术将这个类加载进来,大大提高了灵活性和可扩展性。因此,当新增业务表或是修改业务表时,可以直接修改配置文件即可。由此,功能与功能之间的耦合性大大降低了。处理业务时,一个报文对应于一个事务,当出现错误时进行回滚,并标记错误报文,便于重新执行,从而确保了报文处理的完整性和准确性。此外,根据本专利技术实施例的多线程动态处理业务的方法还包括负载监控的步骤,其中,配置两台以上的服务器,每台服务器运行有主业务和监控业务,监控业务用于辅助主业务的运行。当主业务出现问题而不能运行时,对应的监控业务将启动另外的线程来代替主业务继续运行并且继续监控主业务,直到主业务恢复正常,监控业务才关闭所述另外的线程,重新由主业务来执行,从而保证了高的运行效率。根据本专利技术实施例另一方面,本专利技术还提供了一种电子设备和一种计算机可读存储介质。本专利技术实施例的电子设备包括:至少一个处理器以及与至少一个处理器通信连接的存储器,其中,存储器存储有能被至少一个处理器执行的指令,这些指令被至少一个处理器执行,以使至少一个处理器能执行上述多线程动态处理业务的方法。本专利技术实施例的计算机可读存储介质上存储有计算机指令,这些计算机指令用于使计算机执行本专利技术所提供的多线程动态处理业务的方法。本专利技术中的实施例具有如下优点或有益效果:,在业务表变更频繁情况下,也可以进行开发,并且后期维护成本很低,同时有效地降低了功能与功能之间的耦合性。此外,还将同步处理改为异步处理,进而大大提高了系统的效率。另外,增加负载监控功能可以在一定程度上保证高的执行效率。上述非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图仅用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1示出根据本专利技术的实施例的多线程动态处理业务的方法的主流程整体设计构架;图2示出根据本专利技术的实施例的多线程动态处理业务的线程内部设计图;图3示出对处理器承载的应用程序的监控设计图;以及图4示出根据本专利技术的实施例的多线程动态处理业务的方法的电子设备的硬件结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各个细节以助于理解,应当将它们视为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。为了解决在现有技术的WORK轮询处理中,业务表必须确定且系统处理效率低的问题,本专利技术实施例提供了一种多线程动态处理业务的方法。根据本专利技术实施例的多线程动态处理业务的方法提供了一个多线程处理的框架,如图1所示,主要结构设计为可配置多线程、可配置业务表操作等功能,具体内部分为:线程安全容器、报文抽取、报文解析、业务表操作反射、负载均衡以及负载监控等功能。根据本专利技术实施例的多线程动态处理业务的方法主要包括如下步骤:步骤①和步骤②:启动线程后,线程首先会到线程安全容器中抽取需要解析的报文。如果线程安全容器中没有报文,则会到持久化报文数据库中抽取报文,放入到线程安全容器中。在这个抽取报文的过程中需要一些相关的需要配置到配置文件中的配置准备。配置准备大致分为两个部分:第一部分为多线程的配置,其中,可以动态配置线程池中的线程数、从持久化报文数据库中抽取的报文数和/或抽取的时间间隔等信息,例如:隔多少秒抽取一次、一次抽取多少条报文或者如果持久化报文数据库中没有可用报文时线程休眠多长时间再去取等等。第二部分为配置操作业务表的配置文件,文件可以包括需要使用的类、需要执行的方法和/或参数,并且可以配置执行顺序。接下来,根据系统中的多线程配置文件中的配置,启动多个线程来执行。例如,当第一个线程去线程安全容器中抽取报文时,发现线程安全容器已空,则这个线程需要执行抽取报文的操作,例如从持久化报文数据库抽取出100条报文,随后将100条报文放入线程安全容器中并移出第一条进行处理。第二个线程发现容器中存在报文则直接移出进行处理。本文档来自技高网...

【技术保护点】
1.一种多线程动态处理业务的方法,其特征在于包括以下步骤:根据配置文件中的相关配置,启动多个线程,以到线程安全容器中抽取需要解析的报文,其中,如果所述线程安全容器中有报文,则从所述线程安全容器中抽取出报文,并在所述线程安全容器中删除所述报文,然后对抽取出的所述报文进行解析操作;并且如果所述线程安全容器中没有报文,则到持久化报文数据库中抽取报文并放入所述线程安全容器中。

【技术特征摘要】
1.一种多线程动态处理业务的方法,其特征在于包括以下步骤:根据配置文件中的相关配置,启动多个线程,以到线程安全容器中抽取需要解析的报文,其中,如果所述线程安全容器中有报文,则从所述线程安全容器中抽取出报文,并在所述线程安全容器中删除所述报文,然后对抽取出的所述报文进行解析操作;并且如果所述线程安全容器中没有报文,则到持久化报文数据库中抽取报文并放入所述线程安全容器中。2.根据权利要求1所述的多线程动态处理业务的方法,其特征在于,在所述解析操作中,如果解析成功,再去抽取下一条报文,直到所述线程安全容器中无报文为止,如果解析失败,则在所述持久化报文数据库中标记所述报文为异常,并进行相应的事务回滚,然后继续解析下一条报文。3.根据权利要求2所述的多线程动态处理业务的方法,其特征在于还包括:根据解析的报文以及所述配置文件中的相关配置,来操作业务表以及报文持久化。4.根据权利要求1至3中任一项所述的多线程动态处理业务的方法,其特征在于所述方法还包括:配置两台以上的服务器,其中,每台服务器运行有主业务和监控业务,所述监控业务用于辅助所述主业务的运行。5.根据权利要求4所述的多线程动态处理业务的方法,其特征在于:所述监控业务还监控其他服务器上的主业务...

【专利技术属性】
技术研发人员:顾振
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1