CN105635208A - 一种业务处理方法和装置 - Google Patents
一种业务处理方法和装置 Download PDFInfo
- Publication number
- CN105635208A CN105635208A CN201410601974.5A CN201410601974A CN105635208A CN 105635208 A CN105635208 A CN 105635208A CN 201410601974 A CN201410601974 A CN 201410601974A CN 105635208 A CN105635208 A CN 105635208A
- Authority
- CN
- China
- Prior art keywords
- service request
- thread cache
- result
- thread
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明实施例提供了一种业务处理方法和装置,所述的方法包括:当接收到业务请求时,为所述业务请求创建线程缓存;在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果。本发明实施例从线程缓存中提取处理结果,就不必再次调用外部的服务系统,大大减少了外部的服务系统的调用次数,减少系统资源开销,并且,处理结果不依赖任何其他存储,也不占用应用的内存空间,是轻量级的线程缓存实现方案,避免合并业务接口,保持了接口的单一职责,保证了系统的扩展性和维护性。
Description
技术领域
本申请涉及缓存技术领域,特别是涉及一种业务处理方法和一种业务处理装置。
背景技术
在诸如SOA(Service-OrientedArchitecture,面向服务的体系结构)架构部署的高可用高并发的集群中,用户的一次页面点击行为可能涉及到多个系统之间服务交互。
以用户登录网站的场景举例如下:
在一次用户登录网站过程中,登录中心系统接收用户的登录请求后,首先需要确认用户是否是会员,此时在登录中心系统的页面展现层需要查询用户的身份信息以确认该用户是否存在,需要通过业务接口向会员核心系统发起一次远程服务调用查询用户的身份信息。在确认用户是会员的身份后,进入登录业务处理层时,又需要确认该用户某些属性或状态(如会员等级、是否接受过处罚等),此时又需要通过业务接口发起一次相同的服务调用去查询用户的身份信息。这样在一次登录请求中对会员核心系统的同一个服务发起了至少两次相同的调用。
在高可用高并发的集群中,每天日均高达4000万次登录请求,就对会员核心系统新增了至少4000万次的服务调用,给会员核心系统带来巨大的资源开销。
为了减少系统的资源开销,一般会尽量合并某些业务接口,在同一个业务接口完成所有的业务逻辑,公用所有的、服务调用的结果。但是这样的做法违背了接口定义的单一职责的原则,让原本不应该合并在一起的业务逻辑人为合并在一处,后续的接口可扩展性和维护性都比较差。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何提出一种业务处理的机制,以保证系统的扩展性和维护性,减少系统资源开销。
发明内容
本申请实施例所要解决的技术问题是提供一种业务处理方法,用以保证系统的扩展性和维护性,减少系统资源开销。
相应的,本申请实施例还提供了一种业务处理装置,用以保证系统的扩展性和维护性,减少系统资源开销。
为了解决上述问题,本申请公开了一种业务处理方法,包括:
当接收到业务请求时,为所述业务请求创建线程缓存;
在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果。
优选地,所述在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果的步骤包括:
在所述业务请求下,发起针对一服务请求的处理时,判断所述业务线程缓存中是否存储有所述服务请求对应的处理结果;
若是,则从所述线程缓存中调用所述处理结果;
若否,则调用对应的服务系统对所述服务请求进行处理,获得对应的处理结果,将处理结果存储在所述线程缓存中。
优选地,所述线程缓存继承至线程局部变量。
优选地,还包括:
将所述线程缓存在预置的清理工具中注册。
优选地,在所述将所述线程缓存在预置的清理工具中注册的步骤之后,所述的方法还包括:
调用所述清洁工具清理已注册的线程缓存。
优选地,还包括:
当所述业务请求处理完成时,调用所述清洁工具清理已注册的线程缓存。
本申请实施例还公开了一种业务处理装置,包括:
创建模块,用于在接收到业务请求时,为所述业务请求创建线程缓存;
处理模块,用于在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果。
优选地,所述处理模块包括:
判断子模块,用于在所述业务请求下,发起针对一服务请求的处理时,判断所述业务线程缓存中是否存储有所述服务请求对应的处理结果;若是,则调用第一调用子模块;若否,则调用第二调用子模块和存储子模块;
第一调用子模块,用于从所述线程缓存中调用所述处理结果;
第二调用子模块,用于调用对应的服务系统对所述服务请求进行处理,获得对应的处理结果;
存储子模块,用于将处理结果存储在所述线程缓存中。
优选地,所述线程缓存继承至线程局部变量。
优选地,还包括:
注册模块,用于将所述线程缓存在预置的清理工具中注册。
优选地,还包括:
第一清理模块,用于调用所述清洁工具清理已注册的线程缓存。
优选地,还包括:
第二清理模块,用于在所述业务请求处理完成时,调用所述清洁工具清理已注册的线程缓存。
与背景技术相比,本申请实施例包括以下优点:
本申请实施例在接收到业务请求时,为该业务请求创建线程缓存,在该业务请求下,发起针对一服务请求的处理时,将该服务请求的处理结果存储在线程缓存中,以便再次发起服务请求的处理时,从线程缓存调用服务请求的处理结果,由于对于一次业务请求,有可能发起多次的服务请求,从线程缓存中提取处理结果,就不必再次调用外部的服务系统,大大减少了外部的服务系统的调用次数,减少系统资源开销,并且,处理结果不依赖任何其他存储,也不占用应用的内存空间,是轻量级的线程缓存实现方案,避免合并业务接口,保持了接口的单一职责,保证了系统的扩展性和维护性。
本申请实施例配备一套线程缓存的清理机制,可以调用清洁工具清理单一线程缓存,也可以调用清洁工具清理已注册的线程缓存,提高了清理操作的灵活性和简便性,避免了由于线程变量没有被及时清理而产生的系统内存泄露,从而引发系统宕机的故障,保证了线程缓存的实用性。
附图说明
图1是本申请的一种业务处理方法实施例的步骤流程图;
图2是本申请的另一种业务处理方法实施例的步骤流程图
图3是本申请的一种业务处理装置实施例的结构框图;
图4是本申请的另一种业务处理装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种业务处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,当接收到业务请求时,为所述业务请求创建线程缓存;
需要说明的是,本申请实施例可以应用于分层体系架构的业务系统中。在业务系统的开发中,为了更加合理高效的完成业务系统的开发,通常使用分层体系结构来设计系统。
例如,一个典型的示例为四层体系架构,具体可以包括:
表示层,负责向用户提供用户操作接口;
业务层,负责处理各个模块之间的业务需求;
持久化层,对业务层提供服务,负责将数据对象持久化到数据层;
数据层,负责存储业务对象数据。
其中,底层可以对高层进行服务,高层对底层进行请求,各层之间功能相对独立,分层体系是业务系统可扩展性的一个重要体现。
业务请求可以是指用户发出的指示业务系统对某项业务进行处理的指示。例如,业务请求可以包括登录请求,指示登录某个账号;又例如,业务请求可以包括支付请求,指示为某个商品进行支付,等等。
应用本申请实施例,可以定义一线程缓存(AutoCleanedThreadCache),其实质可以为一个类。
在本申请实施例的一种优选示例中,该线程缓存可以继承至JDK(JavaDevelopmentKit,Java语言的软件开发工具包)原生的线程局部变量(ThreadLocal)。
线程局部变量(ThreadLocal)是Java(一种程序设计语言)中一种线程绑定机制,可以为每一个使用该线程局部变量的线程提供一个变量值的副本,每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突,从而隔离了多个线程对数据的访问冲突。
继承是面向对象的一个特性,继承是从已有的类(例如线程局部变量)中派生出新的类(例如线程局部变量),新的类能吸收已有类的数据属性和行为(例如提供一个变量值的副本),并能扩展新的能力(例如存储处理结果)。
在java中可以使用关键字extends完成继承,示例可以如下:
publicclassAutoCleanedThreadCache<T>extendsThreadLocal<T>{}
在一个高并发的业务系统中,局部线程变量可以用来保证线程之间操作的独立性,每个线程是用来处理一个用户请求的,线程缓存继承了这一属性,除了可以对用户请求进行正常的处理之外,还可以为每个线程存储服务调用的结果,类似于缓存的效果,因此,也称之为“线程缓存”。
在一次调用过程中需要临时存储某些数据,可以使用将线程缓存继承至ThreadLocal。
例如,在分层体系结构的系统中,一般包含web层(表示层)和biz层(业务层)。部分数据,如用户的操作环境信息,只能在web层获取到,在biz层才会用到。那么这部分数据可以通过接口参数从web传递到biz层,但是这样的接口定义过于复杂,因此可以考虑在web层获取到数据后放入线程缓存中,biz层直接从线程缓存中获取即可。
在具体实现中,响应该业务请求,可以在需要用到线程缓存的类中,新建一个线程缓存的实例。
需要说明的是,业务请求与线程缓存可以为一一对应关系,即每接收到一个业务请求,可以生成一个对应的线程缓存。
通常,可以使用java的关键字new来创建线程缓存的实例,示例可以如下:
AutoCleanedThreadCache<T>localProfileInfos=newAutoCleanedThreadCache<T>()
步骤102,在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果。
需要说明的是,服务请求可以是指业务系统发出的请求外部的服务系统提供服务的指示。
例如,对于登录请求(业务请求),在登录中心系统(业务系统)的页面展现层需要查询用户的身份信息以确认该用户是否存在,则需要向会员核心系统(服务系统)发起一次远程服务调用查询用户的身份信息(服务请求)。
在具体实现中,对于首次发起服务请求,从服务系统获得的处理结果,可以存储在线程缓存中,待再次进行相同的服务请求时直接调用。
在本申请的一种优选实施例中,步骤102可以包括如下子步骤:
子步骤S11,在所述业务请求下,发起针对一服务请求的处理时,判断所述业务线程缓存中是否存储有所述服务请求对应的处理结果;若是,则执行子步骤S12,若否,则执行子步骤S13和子步骤S14;
子步骤S12,从所述线程缓存中调用所述处理结果;
子步骤S13,调用对应的服务系统对所述服务请求进行处理,获得对应的处理结果;
子步骤S14,将处理结果存储在所述线程缓存中。
在本申请实施例中,在调用外部的服务系统的服务之前,可以从线程缓存中查询本地调用的结果,查找该服务请求对应的处理结果。
具体而言,放入线程缓存中的数据可以是一对键值对Key-Value,即每个结果都会有一个名字,名字称之为键Key,结果称之为值Value,在查询时,可以根据名字中Key和Value的对应关系进行查询。
若在服务请求对应的处理结果存储在线程缓存中,则可以直接从线程缓存中提取该处理结果。
例如,对于登录请求(业务请求),在登录中心系统(业务系统)的页面展现层需要查询用户的身份信息以确认该用户是否存在,若该用户的身份信息(处理结果)存储在线程缓存中,直接从线程缓存中提取该用户的身份信息。
若在服务请求对应的处理结果未存储在线程缓存中,则可以调用对应的服务系统进行业务处理,获得对应的处理结果。
例如,对于登录请求(业务请求),在登录中心系统(业务系统)的页面展现层需要查询用户的身份信息以确认该用户是否存在,若处理结果未存储在线程缓存中,则需要向会员核心系统(服务系统)发起一次远程服务调用查询用户的身份信息(服务请求),以获得该用户的身份信息(处理结果)。
本申请实施例在接收到业务请求时,为该业务请求创建线程缓存,在该业务请求下,发起针对一服务请求的处理时,将该服务请求的处理结果存储在线程缓存中,以便再次发起服务请求的处理时,从线程缓存调用服务请求的处理结果,由于对于一次业务请求,有可能发起多次的服务请求,从线程缓存中提取处理结果,就不必再次调用外部的服务系统,大大减少了外部的服务系统的调用次数,减少系统资源开销,并且,处理结果不依赖任何其他存储,也不占用应用的内存空间,是轻量级的线程缓存实现方案,避免合并业务接口,保持了接口的单一职责,保证了系统的扩展性和维护性。
参照图2,示出了本申请的另一种业务处理方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201,当接收到业务请求时,为所述业务请求创建线程缓存;
步骤202,将所述线程缓存在预置的清理工具中注册;
应用本申请实施例,可以预先定义一个用于线程缓存清理的清理工具(ThreadCacheCleaner),其实质可以为一个类,该类可以包括以下内容:
1、定义一个清理回调的内部接口;
2、注册一个线程缓存对象;
3、清理所有的线程缓存。
在具体实现中,在清理工具中可以定义一个集合对象,注册可以向该集合对象中新增一个线程缓存的过程。
步骤203,调用所述清洁工具清理已注册的线程缓存;
在本申请实施例中,在注册线程缓存对象时,可以为该线程缓存对象实现一个默认的清理方法,即实现清理回调的内部接口,删除该线程缓存中的内容,以初始化线程缓存的环境,保证线程没有其他数据,防止数据串用。
步骤204,在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果;
步骤205,当所述业务请求处理完成时,调用所述清洁工具清理已注册的线程缓存。
在本申请实施例中,由于线程缓存一般可以复用,因此在业务请求结束的时候,调用已注册的线程缓存的清理回调的内部接口,实现一次性所有的线程缓存的清理,防止上一个线程缓存的数据被下一个线程缓存使用,从而导致数据串用。
本申请实施例配备一套线程缓存的清理机制,可以调用清洁工具清理单一线程缓存,也可以调用清洁工具清理已注册的线程缓存,提高了清理操作的灵活性和简便性,避免了由于线程变量没有被及时清理而产生的系统内存泄露,从而引发系统宕机的故障,保证了线程缓存的实用性。
为使本领域技术人员更好地理解本申请实施例,以下通过具体的示例来说明本申请实施例中的业务处理方法。
登录中心系统接收到用户的登录请求时,创建一个线程缓存的实例,将线程缓存在清理工具中注册,默认调用该清洁工具清理线程缓存,以初始化该线程缓存。
登录中心系统需要确认用户是否是会员,此时在登录中心系统的页面展现层需要查询用户的身份信息以确认该用户是否存在,则需要发起查询用户的身份信息的服务请求。
在线程缓存中未查询到该服务请求对应的处理结果,则向会员核心系统发起一次远程服务调用查询用户的身份信息,将该用户的身份信息存储在线程缓存中。
登录中心系统在确认用户是会员的身份后,进入登录业务处理层时,又需要确认该用户某些属性或状态(如会员等级、是否接受过处罚等),则又需要发起查询用户的身份信息的服务请求。
在线程缓存中查询到该服务请求对应的处理结果,则直接返回用户的身份信息,无需再次向会员核心系统发起一次相同的服务调用去查询用户的身份信息。
此后对于该服务请求处理也类似,这样在一次登录请求中对会员核心系统的多次相同的服务请求只发起了一次会员核心系统的调用,大大减少了会员核心系统的调用,减少了会员核心系统的调用的系统资源开销。
登录中心系统调用清洁工具清理已注册的线程缓存,避免了由于线程变量没有被及时清理而产生的系统内存泄露,从而引发系统宕机的故障,保证线程缓存的实用性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图3,示出了本申请的一种业务处理装置实施例的结构框图,具体可以包括如下模块:
创建模块301,用于在接收到业务请求时,为所述业务请求创建线程缓存;
处理模块302,用于在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果。
在本申请的一种优选实施例中,处理模块302可以包括如下子模块:
判断子模块,用于在所述业务请求下,发起针对一服务请求的处理时,判断所述业务线程缓存中是否存储有所述服务请求对应的处理结果;若是,则调用第一调用子模块;若否,则调用第二调用子模块和存储子模块;
第一调用子模块,用于从所述线程缓存中调用所述处理结果;
第二调用子模块,用于调用对应的服务系统对所述服务请求进行处理,获得对应的处理结果;
存储子模块,用于将处理结果存储在所述线程缓存中。
在本申请实施例的一种优选示例中,所述线程缓存可以继承至线程局部变量。
参照图4,示出了本申请的另一种业务处理装置实施例的结构框图,具体可以包括如下模块:
创建模块401,用于在接收到业务请求时,为所述业务请创建线程缓存;
注册模块402,用于将所述线程缓存在预置的清理工具中注册。
第一清理模块403,用于调用所述清洁工具清理已注册的线程缓存。
处理模块404,用于在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果。
第二清理模块405,用于在所述业务请求处理完成时,调用所述清洁工具清理已注册的线程缓存。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种业务处理方法和一种业务处理装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种业务处理方法,其特征在于,包括:
当接收到业务请求时,为所述业务请求创建线程缓存;
在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果。
2.根据权利要求1所述的方法,其特征在于,所述在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果的步骤包括:
在所述业务请求下,发起针对一服务请求的处理时,判断所述业务线程缓存中是否存储有所述服务请求对应的处理结果;
若是,则从所述线程缓存中调用所述处理结果;
若否,则调用对应的服务系统对所述服务请求进行处理,获得对应的处理结果,将处理结果存储在所述线程缓存中。
3.根据权利要求1所述的方法,其特征在于,所述线程缓存继承至线程局部变量。
4.根据权利要求1或2或3所述的方法,其特征在于,还包括:
将所述线程缓存在预置的清理工具中注册。
5.根据权利要求4所述的方法,其特征在于,在所述将所述线程缓存在预置的清理工具中注册的步骤之后,所述的方法还包括:
调用所述清洁工具清理已注册的线程缓存。
6.根据权利要求4所述的方法,其特征在于,还包括:
当所述业务请求处理完成时,调用所述清洁工具清理已注册的线程缓存。
7.一种业务处理装置,其特征在于,包括:
创建模块,用于在接收到业务请求时,为所述业务请求创建线程缓存;
处理模块,用于在所述业务请求下,发起针对一服务请求的处理时,将所述服务请求的处理结果存储在所述线程缓存中,以便再次发起所述服务请求的处理时,从所述线程缓存调用所述服务请求的处理结果。
8.根据权利要求7所述的方法,其特征在于,所述处理模块包括:
判断子模块,用于在所述业务请求下,发起针对一服务请求的处理时,判断所述业务线程缓存中是否存储有所述服务请求对应的处理结果;若是,则调用第一调用子模块;若否,则调用第二调用子模块和存储子模块;
第一调用子模块,用于从所述线程缓存中调用所述处理结果;
第二调用子模块,用于调用对应的服务系统对所述服务请求进行处理,获得对应的处理结果;
存储子模块,用于将处理结果存储在所述线程缓存中。
9.根据权利要求8所述的装置,其特征在于,所述线程缓存继承至线程局部变量。
10.根据权利要求7或8或9所述的装置,其特征在于,还包括:
注册模块,用于将所述线程缓存在预置的清理工具中注册。
11.根据权利要求10所述的装置,其特征在于,还包括:
第一清理模块,用于调用所述清洁工具清理已注册的线程缓存。
12.根据权利要求10所述的装置,其特征在于,还包括:
第二清理模块,用于在所述业务请求处理完成时,调用所述清洁工具清理已注册的线程缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410601974.5A CN105635208A (zh) | 2014-10-30 | 2014-10-30 | 一种业务处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410601974.5A CN105635208A (zh) | 2014-10-30 | 2014-10-30 | 一种业务处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105635208A true CN105635208A (zh) | 2016-06-01 |
Family
ID=56049694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410601974.5A Pending CN105635208A (zh) | 2014-10-30 | 2014-10-30 | 一种业务处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105635208A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844363A (zh) * | 2017-10-27 | 2018-03-27 | 东软集团股份有限公司 | 业务事务处理方法、装置、存储介质及设备 |
CN110502542A (zh) * | 2019-08-01 | 2019-11-26 | 苏州浪潮智能科技有限公司 | 一种提高数据处理速度的优化方法及装置 |
CN110505257A (zh) * | 2018-05-17 | 2019-11-26 | 北京国双科技有限公司 | 请求消息处理方法及装置 |
CN111813805A (zh) * | 2019-04-12 | 2020-10-23 | 中国移动通信集团河南有限公司 | 一种数据处理方法及装置 |
CN116820333A (zh) * | 2023-06-12 | 2023-09-29 | 青海师范大学 | 一种基于多线程的ssdraid-5持续写入方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967485A (zh) * | 2006-06-20 | 2007-05-23 | 华为技术有限公司 | 一种实现j2ee应用的方法及系统 |
CN101271410A (zh) * | 2008-05-09 | 2008-09-24 | 华为技术有限公司 | 一种数据共享的方法、系统和装置 |
CN102214100A (zh) * | 2011-06-24 | 2011-10-12 | 南京中兴新软件有限责任公司 | 业务执行方法及装置 |
-
2014
- 2014-10-30 CN CN201410601974.5A patent/CN105635208A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967485A (zh) * | 2006-06-20 | 2007-05-23 | 华为技术有限公司 | 一种实现j2ee应用的方法及系统 |
CN101271410A (zh) * | 2008-05-09 | 2008-09-24 | 华为技术有限公司 | 一种数据共享的方法、系统和装置 |
CN102214100A (zh) * | 2011-06-24 | 2011-10-12 | 南京中兴新软件有限责任公司 | 业务执行方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844363A (zh) * | 2017-10-27 | 2018-03-27 | 东软集团股份有限公司 | 业务事务处理方法、装置、存储介质及设备 |
CN107844363B (zh) * | 2017-10-27 | 2020-08-28 | 东软集团股份有限公司 | 业务事务处理方法、装置、存储介质及设备 |
CN110505257A (zh) * | 2018-05-17 | 2019-11-26 | 北京国双科技有限公司 | 请求消息处理方法及装置 |
CN111813805A (zh) * | 2019-04-12 | 2020-10-23 | 中国移动通信集团河南有限公司 | 一种数据处理方法及装置 |
CN110502542A (zh) * | 2019-08-01 | 2019-11-26 | 苏州浪潮智能科技有限公司 | 一种提高数据处理速度的优化方法及装置 |
CN116820333A (zh) * | 2023-06-12 | 2023-09-29 | 青海师范大学 | 一种基于多线程的ssdraid-5持续写入方法 |
CN116820333B (zh) * | 2023-06-12 | 2024-02-23 | 青海师范大学 | 一种基于多线程的ssdraid-5持续写入方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190068690A1 (en) | Automated management of resource attributes across network-based services | |
US20230057335A1 (en) | Deployment of self-contained decision logic | |
US10873512B2 (en) | Methods for managing self-healing cloud infrastructure and applications | |
CN105635208A (zh) | 一种业务处理方法和装置 | |
CN107766343B (zh) | 一种数据存储方法、装置及存储服务器 | |
WO2022062304A1 (zh) | 在容器云上部署图像识别服务的方法与设备 | |
CN104423961A (zh) | 一种生成测试脚本的方法及系统 | |
US10740230B2 (en) | Heap contraction for increasing memory density in cloud environment | |
US20210119970A1 (en) | Real-time policy rule evaluation with multistage processing | |
US10713228B2 (en) | Generating and accessing a data table | |
US20150363399A1 (en) | Generating and accessing a data table | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
US20180225333A1 (en) | Data write/import performance in a database through distributed memory | |
US9606775B2 (en) | Developing rich internet application | |
US20230267005A1 (en) | Thread management | |
US20220229858A1 (en) | Multi-cloud object store access | |
US10542111B2 (en) | Data communication in a clustered data processing environment | |
US9262092B2 (en) | Management of extent checking in a storage controller during copy services operations | |
CN112738181A (zh) | 集群外部ip接入的方法、装置及服务器 | |
US10037241B2 (en) | Category dependent pre-processor for batch commands | |
US10324898B2 (en) | Parallel container and record organization | |
CN115484149B (zh) | 网络切换方法、网络切换装置、电子设备及存储介质 | |
US20160335112A1 (en) | Method and apparatus for generating unique identifier for distributed computing environment | |
US10977331B2 (en) | Closing a plurality of webpages in a browser | |
CN110321250B (zh) | 一种针对应用的容灾方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160601 |
|
RJ01 | Rejection of invention patent application after publication |