CN111078425B - 消息处理方法、装置、存储介质及电子设备 - Google Patents
消息处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111078425B CN111078425B CN201911193577.8A CN201911193577A CN111078425B CN 111078425 B CN111078425 B CN 111078425B CN 201911193577 A CN201911193577 A CN 201911193577A CN 111078425 B CN111078425 B CN 111078425B
- Authority
- CN
- China
- Prior art keywords
- message
- target
- processing
- processed
- request
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Abstract
本公开涉及一种消息处理方法、装置、存储介质及电子设备。所述方法包括:接收多个后台服务发送的针对目标消息的消息处理请求;若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求;向发送所述目标请求的目标后台服务发送消息处理指令,以使所述目标后台服务处理所述目标消息;更新与所述目标消息对应的所述流程信息,以指示所述目标消息处于正在处理状态。这样,基于与消息对应的流程信息,由缓存服务器对消息的处理进行统一的管理,既能够提升消息处理效率,又能够防止同一消息同时被多个后台服务处理。
Description
技术领域
本公开涉及计算机技术领域,具体地,涉及一种消息处理方法、装置、存储介质及电子设备。
背景技术
在处理大量的并发消息时,流程引擎一般会采用分布式集群部署的方式对消息进行处理,而集群环境下后台服务在处理消息时容易产生重复处理的问题。针对这类问题,相关技术中,一般采取两种解决方案,一种是采用主从配置或者多节点选举的方式,从多节点中选取出一个节点处理特定的消息,另一种则是采取数据库乐观锁的机制,结合消息的版本信息进行处理。但是,在上述的第一种方式中,本质上属于单点部署,消息处理效率低,并且在遇到并发消息时,消息的处理仍会存在问题,在第二种方式中,由于需要利用数据库,就需要对数据库进行读写,在消息高并发的情况下,需要频繁读写数据库,消息处理性能低,且延时严重。
发明内容
本公开的目的是提供一种消息处理方法、装置、存储介质及电子设备,以提升消息处理准确性及效率。
为了实现上述目的,根据本公开的第一方面,提供一种消息处理方法,应用于缓存服务器,所述方法包括:
接收多个后台服务发送的针对目标消息的消息处理请求;
若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求;
向发送所述目标请求的目标后台服务发送消息处理指令,以使所述目标后台服务处理所述目标消息;
更新与所述目标消息对应的所述流程信息,以指示所述目标消息处于正在处理状态。
可选地,若所述目标消息的消息类型为第一类型,则所述方法还包括:
在向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则删除与所述目标消息对应的所述流程信息,其中,所述处理完成消息用于表征所述目标请求已被处理。
可选地,若所述目标消息的消息类型为第二类型,则所述方法还包括:
在向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则更新与所述目标消息对应的所述流程信息,以指示所述目标消息未处于正在处理状态,其中,所述处理完成消息用于表征所述目标请求已被处理;
若在接收到所述处理完成消息起的预设时段内接收到所述目标消息的消息接收方的反馈消息,则删除与所述目标消息对应的所述流程信息,其中,所述反馈消息用于指示所述消息接收方已接收并响应所述目标消息。
可选地,所述方法还包括:
若在所述预设时段内未接收到所述反馈消息,则重新执行所述若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求的步骤。
可选地,所述从多个待处理的所述消息处理请求中确定出本次要处理的目标请求,包括:
将多个待处理的所述消息处理请求中、携带的时间戳信息对应时间最早的所述消息处理请求确定为本次要处理的所述目标请求。
可选地,所述与所述目标消息对应的流程信息由流程引擎存储到所述缓存服务器中。
根据本公开的第二方面,提供一种消息处理装置,应用于缓存服务器,所述装置包括:
接收模块,用于接收多个后台服务发送的针对目标消息的消息处理请求;
确定模块,用于若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求;
发送模块,用于向发送所述目标请求的目标后台服务发送消息处理指令,以使所述目标后台服务处理所述目标消息;
第一更新模块,用于更新与所述目标消息对应的所述流程信息,以指示所述目标消息处于正在处理状态。
可选地,若所述目标消息的消息类型为第一类型,则所述装置还包括:
第一处理模块,用于在所述发送模块向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则删除与所述目标消息对应的所述流程信息,其中,所述处理完成消息用于表征所述目标请求已被处理。
可选地,若所述目标消息的消息类型为第二类型,则所述装置还包括:
第二更新模块,用于在所述发送模块向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则更新与所述目标消息对应的所述流程信息,以指示所述目标消息未处于正在处理状态,其中,所述处理完成消息用于表征所述目标请求已被处理;
第二处理模块,用于若在接收到所述处理完成消息起的预设时段内接收到所述目标消息的消息接收方的反馈消息,则删除与所述目标消息对应的所述流程信息,其中,所述反馈消息用于指示所述消息接收方已接收并响应所述目标消息。
可选地,所述装置还包括:
第三处理模块,用于若在所述预设时段内未接收到所述反馈消息,则触发所述确定模块若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求。
可选地,所述确定模块用于将多个待处理的所述消息处理请求中、携带的时间戳信息对应时间最早的所述消息处理请求确定为本次要处理的所述目标请求。
可选地,所述与所述目标消息对应的流程信息由流程引擎存储到所述缓存服务器中。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所述方法的步骤。
根据本公开的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所述方法的步骤。
通过上述技术方案,缓存服务器接收多个后台服务发送的针对目标消息的消息处理请求,若根据缓存服务器存储的与目标消息对应的流程信息确定目标消息当前未处于正在处理状态,则从多个待处理的消息处理请求中确定出本次要处理的目标请求,之后,向发送目标请求的目标后台服务发送消息处理指令,以使目标后台服务处理目标消息,同时,更新与目标消息对应的流程信息,以指示目标消息处于正在处理状态。这样,基于与消息对应的流程信息,由缓存服务器对消息的处理进行统一的管理,既能够提升消息处理效率,又能够防止同一消息同时被多个后台服务处理。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开的一种实施方式提供的消息处理方法的流程图;
图2是根据本公开的另一种实施方式提供的消息处理方法的流程图;
图3是根据本公开的一种实施方式提供的消息处理装置的框图;
图4是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在介绍本公开提供的方案之前,首先对本公开所涉及的场景进行简单介绍。在流程开启后,流程开始流转,流程引擎在流程流转过程中会生成待处理的消息,由多个后台服务中的某个后台服务对待处理的消息进行处理。其中,流程引擎和多个后台服务均被部署在后台服务器上。在这个过程中,多个后台服务轮询流程引擎,并向需要提供服务的待处理消息提供服务,但是,各后台服务均会发起轮询,所以可能会出现消息重复处理的情况,例如,同一个待处理的消息被两个后台服务处理,该消息的接收方接收到重复的两条消息,导致消息处理出现问题。
所以,本公开提供了一种消息处理方法、装置、存储介质及电子设备,以解决上述问题。
图1是根据本公开的一种实施方式提供的消息处理方法的流程图。本公开提供的方法可以应用于缓存服务器。如图1所示,该方法可以包括以下步骤。
在步骤11中,接收多个后台服务发送的针对目标消息的消息处理请求。
在描述本公开提供的方法时,针对目标消息进行描述,这里的目标消息并不特殊指代某一个或某一类消息,它可以是流程流转过程中生成的待处理的消息中的任意一条消息。以及,在本方法对应的同一实施过程中,目标消息指代的是同一条消息。
流程开启后,由流程引擎生成待处理的消息。每当流程引擎生成待处理的消息后,均会对应生成与该消息对应的流程信息,并发送到缓存服务器中存储,用于后续的消息处理判定,其中,该流程信息中可以包括用于代表该消息当前是否处于正在处理状态的内容。后台服务会对缓存服务器发起轮询,也就是向缓存服务器发起请求,以请求处理消息,缓存服务器会接收这些请求。
另外,在无额外说明的情况下,本公开所提到的多个均指代两个或两个以上。
参照上述描述,缓存服务器可以接收多个后台服务发送的针对目标消息的消息处理请求。
在步骤12中,若根据缓存服务器存储的与目标消息对应的流程信息确定目标消息当前未处于正在处理状态,则从多个待处理的消息处理请求中确定出本次要处理的目标请求。
若根据缓存服务器存储的与目标消息对应的流程信息确定目标消息当前未处于正在处理状态,说明目标消息并未处理完成,且当前没有正在被处理,因此可以对该目标消息进行处理。采用的方式是从多个待处理的消息处理请求中确定出本次要处理的目标请求。
另外,上述步骤12隐含包括了缓存服务器中存储有与目标消息对应的流程信息。若缓存服务器中未存储有与某消息对应的流程信息,则接收到针对该消息的处理请求时,会自动忽略这些请求。
在步骤13中,向发送目标请求的目标后台服务发送消息处理指令。
在经过步骤12确定出本次要处理的目标请求后,向发送该目标请求的目标后台服务发送消息处理指令,以使目标后台服务处理目标消息。
在步骤14中,更新与目标消息对应的流程信息,以指示目标消息处于正在处理状态。
在向目标后台服务发送消息处理指令后,更新与目标消息对应的流程信息,以指示目标消息处于正在处理状态,以防止目标后台服务处理目标消息的同时该目标消息再被其他的后台服务重复处理。
其中,步骤13和步骤14可以同时执行,也就是缓存服务器向后台服务发送消息处理指令的同时,就更新与目标消息对应的流程信息。
通过上述技术方案,缓存服务器接收多个后台服务发送的针对目标消息的消息处理请求,若根据缓存服务器存储的与目标消息对应的流程信息确定目标消息当前未处于正在处理状态,则从多个待处理的消息处理请求中确定出本次要处理的目标请求,之后,向发送目标请求的目标后台服务发送消息处理指令,以使目标后台服务处理目标消息,同时,更新与目标消息对应的流程信息,以指示目标消息处于正在处理状态。这样,基于与消息对应的流程信息,由缓存服务器对消息的处理进行统一的管理,既能够提升消息处理效率,又能够防止同一消息同时被多个后台服务处理。
为了使本领域技术人员更加理解本发明实施例提供的技术方案,下面对上文中的相应步骤或应用场景进行详细的说明。
首先对与目标消息对应的流程消息进行详细的说明。如上所述,在流程流转过程中,流程引擎会生成待处理的消息,每当生成一个待处理的消息,流程引擎还会对应生成与该消息对应的流程信息,并存储到缓存服务器中。与消息对应的流程信息可以包括消息标识和消息处理状态,消息标识用于唯一代表该消息,消息处理状态能够反映该消息当前是否处于正在处理状态。除此之外,与消息对应的流程信息还可以包括消息的消息类型,消息的消息类型包括第一类型和第二类型,其中,属于第一类型的消息被发送后无需得到消息接收方的反馈,属于第二类型的消息被发送后需要得到消息接收方的反馈。其中,流程引擎可以按照hashTable格式(例如,hashTable的key-value格式)组装流程消息后发送给缓存服务器,以提升在缓存服务器中的数据查询效率,从而加快消息处理效率。由上所述,与目标消息对应的流程信息是由流程信息引擎存储到缓存服务器中的。
下面对步骤12中的从多个待处理的消息处理请求确定出本次要处理的目标请求进行详细说明。
在一种可能的实施方式中,步骤12中的从多个待处理的消息处理请求确定出本次要处理的目标请求,可以包括:
将多个待处理消息的消息处理请求中、携带的时间戳信息对应时间最早的消息处理请求确定为本次要处理的目标请求。
时间戳是能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据,它能够证明数据的产生时间。同样地,后台服务针对目标消息发送的消息处理请求中,每个消息处理请求都带有与该请求对应的时间戳信息,以代表该消息处理请求的产生时间。在这一前提下,根据多个待处理的消息处理请求以及各自携带的时间戳信息就可以确定出本次要处理的目标请求。如上所述,将多个待处理消息的消息处理请求中、携带的时间戳信息对应时间最早的消息处理请求确定为本次要处理的目标请求,也就是说,在多个待处理消息的消息处理请求中,选取出最早发送的消息处理请求。
采用上述方式,利用消息处理请求自带的时间戳信息从多个消息处理请求出确定出本次要处理的目标请求,处理迅速。
另外,由于消息类型包括第一类型和第二类型,属于第一类型的消息被发送后无需得到消息接收方的反馈,属于第二类型的消息被发送后需要得到消息接收方的反馈,因此,在后续的处理方式上,也略有区别。其中,用于反映消息类型的信息可以被包含在与消息对应的流程信息中,在上文中已有说明,此处不赘述。
在一种可能的实施方式中,目标消息的消息类型为第一类型,则在步骤13向发送目标请求的目标后台服务发送消息处理指令后,本公开提供的方法还可以包括以下步骤:
若接收到该目标后台服务发送的处理完成消息,则删除与目标消息对应的流程信息。
其中,所述处理完成消息用于表征所述目标请求已被处理。若接收到目标后台服务发送的处理完成消息,说明目标请求已被处理,即目标后台服务已发送目标消息。由于目标消息属于第一类型,因此无需消息接收方反馈,目标消息的处理已经完成,无需再使用到与目标消息对应的流程信息,因此,可以删除与目标消息对应的流程信息。
采用上述方式,在第一类型的消息处理完成后,直接删除与该消息对应的流程信息,以减少缓存服务器的空间占用。
在另一种可能的实施方式中,目标消息的消息类型为第二类型,则在步骤13向发送目标请求的目标后台服务发送消息处理指令后,本公开提供的方法还可以包括以下步骤:
在步骤21中,若接收到目标后台服务发送的处理完成消息,则更新与目标消息对应的流程信息,以指示目标消息未处于正在处理状态。
若接收到目标后台服务发送的处理完成消息,说明目标请求已被处理,即目标后台服务已发送目标消息。由于目标消息属于第二类型,需要得到消息接收方的反馈,而此时没有得到目标消息的消息接收方的反馈、且目标消息也没有正在被处理,因此,可以更新与目标消息对应的流程信息,以指示目标消息未处于正在处理状态。
在步骤22中,判断在接收到处理完成消息起的预设时段内是否接收到目标消息的消息接收方的反馈消息。
若在接收到处理完成消息起的预设时段内接收到目标消息的消息接收方的反馈消息,则执行步骤23;若在接收到处理完成消息起的预设时段内未接收到目标消息的消息接收方的反馈消息,则重新执行步骤12。
在步骤23中,删除与目标消息对应的流程信息。
其中,反馈消息用于指示消息接收方已接收并响应目标消息。
在一种情形中,在接收到处理完成消息起的预设时段内,目标消息的消息接收方对该目标消息做出了响应。若在接收到处理完成消息起的预设时段内接收到目标消息的消息接收方的反馈消息,说明消息接收方在接收到目标消息后已做出响应,此时,可以删除与目标消息对应的流程信息。预设时段所对应的时长可以由用户设置,示例地,预设时段所对应的时长可以为24h(小时)。
采用上述方式,第二类型的消息处理完成后,在得到该消息的消息接收方的响应后再删除与该消息对应的流程信息,能够在保证消息处理完成度的同时减少缓存服务器的空间占用。
在另一种可能的情形中,在接收到处理完成消息起的预设时段内,目标消息的消息接收方并没有响应该目标消息。若在预设时段内未接收到反馈消息,可以重新执行步骤12。
若在预设时段内未接收反馈消息,说明目标消息的消息接收方并没有对目标消息做出响应,因此,为了得到消息接收方的响应,还需要继续向目标消息的消息接收方发送目标消息。
采用的方式就是重新返回步骤12,从多个待处理的消息处理请求中确定出本次要处理的目标请求。可知,先前已处理过的消息处理请求并不属于这里的多个待处理的消息处理请求中,本次要处理的目标请求也不是先前已处理过的消息处理请求。目标请求的确定方式与前文中所给出的一致,此处不赘述。
示例地,若预设时段所对应的时长为24h,则在目标消息的消息接收方对目标消息做出响应之前,后台服务在第一次发送目标消息后,每过24h就会再次向消息接收方发送目标消息。
采用上述方式,第二类型的消息处理完成后,在没有得到该消息的消息接收方的响应时,以一定周期向该消息接收方发送目标消息,以使消息接收方做出响应。
图3是根据本公开的一种实施方式提供的消息处理装置的框图,该装置可以应用于缓存服务器。如图3所示,所述装置30包括:
接收模块31,用于接收多个后台服务发送的针对目标消息的消息处理请求;
确定模块32,用于若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求;
发送模块33,用于向发送所述目标请求的目标后台服务发送消息处理指令,以使所述目标后台服务处理所述目标消息;
第一更新模块34,用于更新与所述目标消息对应的所述流程信息,以指示所述目标消息处于正在处理状态。
可选地,若所述目标消息的消息类型为第一类型,则所述装置30还包括:
第一处理模块,用于在所述发送模块33向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则删除与所述目标消息对应的所述流程信息,其中,所述处理完成消息用于表征所述目标请求已被处理。
可选地,若所述目标消息的消息类型为第二类型,则所述装置30还包括:
第二更新模块,用于在所述发送模块33向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则更新与所述目标消息对应的所述流程信息,以指示所述目标消息未处于正在处理状态,其中,所述处理完成消息用于表征所述目标请求已被处理;
第二处理模块,用于若在接收到所述处理完成消息起的预设时段内接收到所述目标消息的消息接收方的反馈消息,则删除与所述目标消息对应的所述流程信息,其中,所述反馈消息用于指示所述消息接收方已接收并响应所述目标消息。
可选地,所述装置30还包括:
第三处理模块,用于若在所述预设时段内未接收到所述反馈消息,则触发所述确定模块32若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求。
可选地,所述确定模块32用于将多个待处理的所述消息处理请求中、携带的时间戳信息对应时间最早的所述消息处理请求确定为本次要处理的所述目标请求。
可选地,所述与所述目标消息对应的流程信息由流程引擎存储到所述缓存服务器中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备1900可以被提供为一缓存服务器。参照图4,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的消息处理方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的消息处理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的消息处理方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的消息处理方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (9)
1.一种消息处理方法,其特征在于,应用于缓存服务器,所述方法包括:
接收多个后台服务发送的针对目标消息的消息处理请求;
若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求;
向发送所述目标请求的目标后台服务发送消息处理指令,以使所述目标后台服务处理所述目标消息;
更新与所述目标消息对应的所述流程信息,以指示所述目标消息处于正在处理状态;
若所述目标消息的消息类型为第二类型,则所述方法还包括:
在向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则更新与所述目标消息对应的所述流程信息,以指示所述目标消息未处于正在处理状态,其中,所述处理完成消息用于表征所述目标请求已被处理;
若在接收到所述处理完成消息起的预设时段内接收到所述目标消息的消息接收方的反馈消息,则删除与所述目标消息对应的所述流程信息,其中,所述反馈消息用于指示所述消息接收方已接收并响应所述目标消息;
其中,属于所述第二类型的消息被发送后需要得到所述消息接收方的反馈。
2.根据权利要求1所述的方法,其特征在于,若所述目标消息的消息类型为第一类型,则所述方法还包括:
在向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则删除与所述目标消息对应的所述流程信息,其中,所述处理完成消息用于表征所述目标请求已被处理;
其中,属于所述第一类型的消息被发送后无需得到所述消息接收方的反馈。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在所述预设时段内未接收到所述反馈消息,则重新执行所述若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求的步骤。
4.根据权利要求1所述的方法,其特征在于,所述从多个待处理的所述消息处理请求中确定出本次要处理的目标请求,包括:
将多个待处理的所述消息处理请求中、携带的时间戳信息对应时间最早的所述消息处理请求确定为本次要处理的所述目标请求。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述与所述目标消息对应的流程信息由流程引擎存储到所述缓存服务器中。
6.一种消息处理装置,其特征在于,应用于缓存服务器,所述装置包括;
接收模块,用于接收多个后台服务发送的针对目标消息的消息处理请求;
确定模块,用于若根据所述缓存服务器存储的与所述目标消息对应的流程信息确定所述目标消息当前未处于正在处理状态,则从多个待处理的所述消息处理请求中确定出本次要处理的目标请求;
发送模块,用于向发送所述目标请求的目标后台服务发送消息处理指令,以使所述目标后台服务处理所述目标消息;
第一更新模块,用于更新与所述目标消息对应的所述流程信息,以指示所述目标消息处于正在处理状态;
若所述目标消息的消息类型为第二类型,则所述装置还包括:
第二更新模块,用于在所述发送模块向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则更新与所述目标消息对应的所述流程信息,以指示所述目标消息未处于正在处理状态,其中,所述处理完成消息用于表征所述目标请求已被处理;
第二处理模块,用于若在接收到所述处理完成消息起的预设时段内接收到所述目标消息的消息接收方的反馈消息,则删除与所述目标消息对应的所述流程信息,其中,所述反馈消息用于指示所述消息接收方已接收并响应所述目标消息;
其中,属于所述第二类型的消息被发送后需要得到所述消息接收方的反馈。
7.根据权利要求6所述的装置,其特征在于,若所述目标消息的消息类型为第一类型,则所述装置还包括:
第一处理模块,用于在所述发送模块向发送所述目标请求的目标后台服务发送消息处理指令后,若接收到所述目标后台服务发送的处理完成消息,则删除与所述目标消息对应的所述流程信息,其中,所述处理完成消息用于表征所述目标请求已被处理;
其中,属于所述第一类型的消息被发送后无需得到所述消息接收方的反馈。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
9.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911193577.8A CN111078425B (zh) | 2019-11-28 | 2019-11-28 | 消息处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911193577.8A CN111078425B (zh) | 2019-11-28 | 2019-11-28 | 消息处理方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078425A CN111078425A (zh) | 2020-04-28 |
CN111078425B true CN111078425B (zh) | 2023-12-15 |
Family
ID=70312539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911193577.8A Active CN111078425B (zh) | 2019-11-28 | 2019-11-28 | 消息处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078425B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114140057B (zh) * | 2022-02-07 | 2022-09-20 | 浙江口碑网络技术有限公司 | 任务处理方法、装置及计算设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391646A (zh) * | 2017-08-04 | 2019-02-26 | 中国电信股份有限公司 | 消息中间件消息获取方法、装置和系统 |
CN110049113A (zh) * | 2019-04-02 | 2019-07-23 | 中国联合网络通信集团有限公司 | 业务消息处理方法及装置 |
CN110417910A (zh) * | 2019-08-07 | 2019-11-05 | 北京达佳互联信息技术有限公司 | 通知消息的发送方法、装置、服务器及存储介质 |
-
2019
- 2019-11-28 CN CN201911193577.8A patent/CN111078425B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391646A (zh) * | 2017-08-04 | 2019-02-26 | 中国电信股份有限公司 | 消息中间件消息获取方法、装置和系统 |
CN110049113A (zh) * | 2019-04-02 | 2019-07-23 | 中国联合网络通信集团有限公司 | 业务消息处理方法及装置 |
CN110417910A (zh) * | 2019-08-07 | 2019-11-05 | 北京达佳互联信息技术有限公司 | 通知消息的发送方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111078425A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101316226B (zh) | 一种获取资源的方法、装置及系统 | |
CN110708237A (zh) | 消息交互方法、装置、可读介质及电子设备 | |
CN110968431B (zh) | 一种消息处理方法、装置及设备 | |
CN112367149B (zh) | 消息获取方法、装置、设备及存储介质 | |
US20160241635A1 (en) | M2m data querying and invoking methods, querying and invoking devices, and system | |
US10938633B2 (en) | Facilitating resilient and fault tolerant asynchronous messaging | |
US10051552B2 (en) | Method for realizing resource attribute notification, and common service entity | |
CN111221469A (zh) | 同步缓存数据的方法、装置和系统 | |
CN111159233B (zh) | 分布式缓存方法、系统、计算机设备以及存储介质 | |
CN111416823A (zh) | 一种数据传输方法和装置 | |
CN103677988A (zh) | 用于软件系统的多进程通讯方法及系统 | |
CN111078425B (zh) | 消息处理方法、装置、存储介质及电子设备 | |
CN111431952B (zh) | 消息推送方法、装置及系统,计算机存储介质和电子设备 | |
EP2416526A1 (en) | Task switching method, server node and cluster system | |
CN111367948B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN112000850B (zh) | 进行数据处理的方法、装置、系统及设备 | |
CN111367869A (zh) | 镜像文件处理方法、装置、存储介质及电子设备 | |
CN107563942B (zh) | 一种物流数据批量处理方法、物流处理系统以及处理装置 | |
CN111586841B (zh) | 终端寻呼优化方法、系统、设备及可读存储介质 | |
CN112328701A (zh) | 数据同步方法、终端设备及计算机可读存储介质 | |
CN111970091A (zh) | 一种通信方法、系统、设备及计算机可读存储介质 | |
CN112181313B (zh) | 硬盘数据的快速自毁方法及系统 | |
CN113992516B (zh) | 物联网设备的固件更新方法、装置及物联网 | |
CN112818059B (zh) | 一种基于容器发布平台的信息实时同步方法及装置 | |
CN111414198B (zh) | 一种请求处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |