一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种消费信息的传送方法、系统、设备及介质与流程

2022-03-23 09:04:22 来源:中国专利 TAG:


1.本发明涉及消息处理技术领域,特别是涉及一种消费信息的传送方法、系统、设备及介质。


背景技术:

2.消息中间件是可以进行消息发布、订阅以及管理的组件,消息中间件的组成包含消息生产者、消息消费者、消息主题,部分消息中间件还存在消息代理服务器组件。消息中间件可以起到降低耦合度、流量削峰的作用,在信息通信领域起着非常重要的作用。
3.通常我们认为消息中间件是一个可靠的组件,因为消息中间件的基本特性之一为“消息至少送达一次”,即对于消息服务器来说的至少传送消息成功的一次,对于消费者来说多条重复的消费业务也只能成功消费一次。但是正是因为这个基本特性,可能导致消费者重复消费,从而导致消费业务发生错误。


技术实现要素:

4.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种消费信息的传送方法、系统、设备及介质,用于解决消费信息重复的问题。
5.为实现上述目的及其他相关目的,本发明提供一种消费信息的传送方法,包括以下步骤:
6.获取发送端发送的消费信息,每个所述消费信息具有一个的消息标志,其中,不同的所述消息标志表示不同的消费任务;
7.获取包括相同消息标志的消费信息;
8.设置消息消费表,将获取的消费信息存储至所述消息消费表中;
9.更新所述消息消费表中的任意一条消费信息;以及
10.将更新后的消费信息传送至接收端,以完成消费信息的传送。
11.在本发明的一个实施例中,获取包括相同消息标志的消费信息包括以下步骤:
12.设置拦截文件;
13.在所述拦截文件中设置拦截信息标志;以及
14.当所述消费信息的消费标志为拦截消息标志时,将所述消费信息保存在所述消费信息表中。
15.在本发明的一个实施例中,所述消息消费表中包括执行状态信息,通过所述执行状态信息判读所述消费信息的状态,且所述消费信息的状态包括成功、失败和处理中。
16.在本发明的一个实施例中,更新所述消息消费表中的任意一条消费信息包括以下步骤:
17.将相同消息标志的消费信息存储至所述消息消费表中;
18.将相同消息标志的消费信息中任意一条消费信息的执行状态更新为成功,并将更新后的该条消费信息传送至接收端;
19.将其他相同消息标志的消费信息的执行状态保持不变,并继续存储至所述消息消费表中。
20.在本发明的一个实施例中,所述消息消费表还过包括过期时间信息,当所述消费信息的所述执行状态信息为处理中,且未超过所述过期时间信息的限定,所述的消费信息的传送方法包括以下步骤:
21.判断所述消费信息是否消费成功;
22.若消费成功,则将这条消费信息的执行状态更新为成功;以及
23.若消费失败,则将这条消费信息反馈至所述发送端,所述接收端获取所述发送端再次重新发送的这条消费信息,直至完成这条消费信息的消费任务。
24.在本发明的一个实施例中,当所述接收端没有对消费信息进行处理时,则根据所述消息标志,执行相应的消费任务流程,并判断所述消费任务流程是否执成功;
25.若执行成功,则完成所述消费任务,并将这条消费信息的执行状态信息更新为成功;
26.若执行失败,则将这条消费信息的执行状态更新为失败。
27.在本发明的一个实施例中,当所述接收端在处所述消费信息在处理的过程超过所述过期时间信息的限定时,则根据所述消息标志,执行相应的消费任务流程,并判断所述消费任务流程是否执成功;
28.若执行成功,则完成所述消费任务,并将这条消费信息的执行状态信息更新为成功;
29.若执行失败,则将这条消费信息的执行状态更新为失败。
30.为实现上述目的及其他相关目的,本发明还提供一种消费信息的传送系统,所述消费信息的传送系统包括:
31.获取模块,用于获取发送端发送的消费信息,每个所述消费信息具有一个消息标志,不同的所述消息标志表示不同的消费任务,且还用于获取包括相同消息标志的消费信息;
32.存储模块,与所述获取模块连接,用于设置消息消费表,将获取的消费信息存储至所述消息消费表中;
33.更新模块,与所述存储模块连接,用于更新所述消息消费表中的任意一条消费信息;以及将更新的消费信息传送至接收端,以完成消费信息的传送。
34.为实现上述目的及其他相关目的,本发明还提供一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
35.为实现上述目的及其他相关目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质其上存储于计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
36.如上所述,本发明的一种消费信息的传送方法、系统、设备及介质,本发明通过获取消费信息,每个消费信息具有不同的消息标志,且每个消息标志都是唯一,在发生消费信息重复投递时,根据消息标志进行消费信息幂等控制,以去除重复的消费信息。
37.本发明的一种消费信息的传送方法、系统、设备及介质,接收端获取消费信息,通
过在接收端设置消息消费表,将获取的消费信息存储至消息消费表中,其中包括多条同一种消息标志中的消费信息,将消息标志在数据库中设置为主键索引,通过主键索引去除重复的消费信息。当多条同一种消息标志的消费信息,其中一条消费信息的执行状态信息为成功,当其他多条同一种消息标志的消费信息再次重复消费时候,出现报错信息,通过报错信息,避免消费者重复消费。
38.本发明的一种消费信息的传送方法、系统、设备及介质,在获取消费信息时,判断是否对其消费信息进行及时处理,以及这条消费信息在处理之前,是否超过过期时间信息的限定,以执行不同的工作流程,进一步避免消费信息重复消费。
39.本发明的一种消费信息的传送方法、系统、设备及介质,能够解决由于消息服务器宕机或者网络波动的原因,导致发送端重复发送消费信息的问题,还可以解决接收端在完成消费任务成功后,因为接收端重启,消费信息重复的问题。
附图说明
40.图1显示为本发明的一种消费信息的传送方法流程示意图。
41.图2显示为本发明的获取消费信息的流程示意图。
42.图3显示为本发明的发送端和接收端之间传送消费信息的工作流程示意图。
43.图4显示为一种消费信息的传送系统的框图。
44.图5显示为一种计算机可读存储介质的框图。
45.图6显示为一种电子设备的结构原理框图。
具体实施方式
46.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
47.需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
48.在消息中间件传送的过程中,同一条消费信息有且只允许消费成功一次。但是由于一些不可抗拒的因素,如网络波动和消息服务器宕机等,又或者因为生产者设置的业务逻辑问题,使同一条消费信息重复发送多次,使消费者重复消费多次,从而造成消费者和生产者的损失。
49.请参阅图1所示,在本发明的一个实施例中,本发明提供一种消费信息的传送方法,本发明能够解决消费信息重复的问题,所述消费信息的传送方法包括以下步骤:
50.s100、获取发送端发送的消费信息,每个所述消费信息具有一个消息标志,其中,不同的消所述息标志表示不同的消费任务。
51.s200、获取包括相同消息标志的消费信息。
52.s300、设置消息消费表,将获取的消费信息存储至所述消息消费表中。
53.s400、更新所述消息消费表中的任意一条消费信息。
54.s500、将更新的消费信息传送至接收端,以完成消费信息的传送。
55.请参阅图1所示,在本发明的一个实施例中,在步骤s100中,获取发送端发送的消费信息,每个所述消费信息具有一个消息标志,其中,不同的所述消息标志表示不同的消费任务。其中,在本实施例中的,发送端例如可以为商家端,商家端根据消费者在购买东西时支付相关费用或者退货赔偿等业务时,商家端根据业务流程辅助消费者完成消费,在此期间商家端发送消费信息给接收端。发送端发送消费信息,所述消费信息例如包括注册会员信息、验证信息以及支付信息等。每一种消费信息都具有不同的消息标志,例如可以包括但不仅限于注册会员信息的消息标志,验证信息的消息标志以及支付信息的消息标志。不同的消息标志代表不同的消费任务,通过消息标志,可以区别不同的消费任务,即消费任务例如是注册会员、消息验证以及消费支付等。
56.请参阅图1所示,进一步的,在本发明的一个实施例中,每种消息标志是唯一的,消息标志例如为一串数字组合或者为字母和数字的组合。在本实施例中,消息标志例如为一串数字,且消息标志中,例如包括日期信息、消费任务编号信息、身份信息和流水号信息。日期信息为发送端发送消费信息时的日期,例如可以具体到分钟或者秒。消费任务编号信息表示发送端要办理的业务信息,业务信息如上述所述的注册会员、支付或者退货退款等,其中,注册会员任务的编号例如为号1,支付任务的编号例如为2,退货退款的标号例如为3等,且不限于此。身份信息表示消费者在商家端注册的身份信息,为了避免在数据库中根据消息标志搜索消费信息时,时间耗费过长以及保护消费者信息的隐私,在这里,只使用消费者部分身份信息,例如消费者身份信息的后四位。例如一个消息标志为“202111221154 21234 1234”,表示为身份信息尾号为“1234”的消费者,在2021年11月22日上午11点54分办理支付业务,所述支付业务的流水编号为“1234”。
57.请参阅图1和图2所示,在本发明的一个实施例中,在步骤s200中,获取包括相同消息标志的消费信息。在本实施例中,接收端例如为消费者所在的消费端,当消费者端在接收到不同的消费任务时,根据消费任务流程完成消费,但是在这其中,消费者端可能会接收到多条重复的消费信息。为了保证消费者端和商家端的利益,避免消费端和商家端的重复消费,造成金钱上损失。本发明在接收消费信息时,根据消息标志,获取与金钱业务相关的消费信息。其中,获取包括多条同一种消息标志的所述消费信息,包括以下步骤:
58.s210、设置拦截文件。
59.s220、在所述拦截文件中设置拦截消息标志。
60.s230、当所述消费信息的消费标志为拦截消息标志时,将所述消费信息保存在消息消费表中。
61.请参阅图1和图2所示,具体的,在本发明的一个实施例中,在步骤s210中,设置拦截文件。在接收端中,配置消费信息的拦截文件,通过拦截文件,以获取发送端发送的消费信息,所述拦截文件例如为一种基于面向切面编程(aspect oriented programming,aop)开发的一个插件中的文件。在步骤s220中,在所述拦截文件中设置拦截消息标志。根据实际情况,在进行消费信息拦截时,有选择的拦截部分消费信息。具体的,实现这种只拦截部分消费任务的设置,还需要在拦截文件中定义拦截消息标志,以及定义关于消息幂等的相关内容,所述定义关于消息幂等的相关内容例如通过在拦截文件中使用消息幂等注解,以实
现只拦截部分消费任务的设置。在步骤s230中,当所述消费信息的消费标志为拦截消息标志时,将所述消费信息保存在消息消费表中。在本实施例中,例如只拦截涉及金额的消费信息,如支付信息和退货信息等,即在拦截文件中定义关于支付和退货的拦截消息标志。当然在其他的实施例中,还可以拦截发送端发送的所有消费信息,具体的需要拦截的消费信息根据实际需求而定。并且还根据消息标志,进行同一种消息标志的多条消费信息的幂等控制。
62.请参阅图1所示,在本发明的一个实施例中,在步骤s300中,设置消息消费表,将获取的消费信息存储至所述消息消费表中。其中,所述消息消费表中例如包括消息名信息、消息内容信息、执行状态信息、创建时间信息、唯一伪劣信息等,且不限于此,具体的,根据实际业务需求添加。
63.请参阅图1所示,在本发明的一个实施例中,所述消息名信息为所述消费任务的名称,如注册会员、支付和退货等,消息名称例如同样用数字编号代替。消息内容信息中存储着消息标志,根据所述消息内容信息中存储的信息,进行同一种消息标志的多条消费信息的幂等控制,即对重复的消费信息进行控制。消息消费表例如设置在一个数据库中,所述数据库例如设置在消息服务器中,因为消息标志是唯一,因此根据消息标志以及只能消费成功一次的逻辑,将消息标志设置为主键索引,通过主键索引去除重复的消费信息。例如当多条同一种消息标志的消费信息,其中一条消费信息的执行状态信息为成功,当其他多条同一种消息标志的消费信息再次重复消费时候,例如出现报错信息,并给出消费者端提示,避免重复消费。执行状态信息包括成功、失败、处理中和待处理,通过每条消费信息的执行状态信息,判断当前这条消费信息所述的状态。其中,每一条消费信息在存储至消息消费表中的默认初始出状态为待处理。创建时间信息为一条消费信息存储在消息消费表时的时间,并且在此基础上,在消息消费列表上还包括的过期时间信息,所述过期时间信息用于设置处理一条消费信息的过期时间,所述过期时间例如为600s、700s或800s,且不限于此,具体的根据实际处理业务的复杂程度,设置过期时间的具体的数值。设置过期时间的方式,例如可以设置过期时间文件,将所述过期时间文件通过接收端更新的方式,设置在接收端内,使消息消费表中的消费信息,根据所述创建时间的基础上,超过所述过期时间后,即消费者端没有消费成功,或者理解为消费者端没有消费。唯一伪劣信息用于标识消费信息成功的状态,当所述消费信息执行成功后,唯一伪劣信息将显示为消息标志和字母组合的方式,以表示消费信息的消费任务完成。
64.请参阅图1所示,在本发明的一个实施例中,当接收到所述消费信息后,判断所述消息消费表中是否存储有该所述消费信息的消息标志,若所述消费信息表中没有存储该所述消费信息的消息标志,则将该所述消费信息存储在所述消息表中,并对该所述消费信息进行更新;若所述消费信息表中存储有该所述消费信息的消息标志,则将该所述消费信息存储在所述消息表中,但不会对该所述消费信息进行更新。通过将消费信息存储至消息消费表中,根据消费内容中信息,接收端根据消费任务流程完成消费。消息消费表例如设置在接收端系统的数据库中,通过在数据库中搜索唯一的消息标志,对于重复的消费信息,接收端只需要处理其中一条消费信息。具体的,例如消费者端在进行商品退货,若是因为网络波动或其他原因,同一件商品,发送端发送多条重复的消费信息,若不进行去重处理,消费者端在不清楚是否成功消费的情况下,对同一件商品进行了多商品退货,会造成发送端的损
失。又例如,消费者端在进行支付商品费用的时候,又因为网络波动或其他原因,消费者端不清楚是否付款完成的情况下,消费者端又重新支付商品的费用,也会造成消费者端的损失。因此建立消息消费表,消费表中存储着消费信息的执行状态信息和消息内容信息,依据执行状态信息和消息内容信息,进行消费信息去重,以及根据消费信息状态信息判断,消费者端是否完成消费任务。
65.请参阅图1所示,在本发明的一个实施例中,在步骤s400中,更新所述消息消费表中的任意一条消费信息。消费信息被存储至消息消费表中,等待被处理,以完成消费任务。
66.请参阅图1所示,在本发明的一个实施例中,当消费信息存储至消息消费表中,接收端并没有对消费信息进行处理时,则根据消息标志,执行相应的消费任务流程,若执行成功,则完成消费任务,并将这条消费信息的执行状态信息更新为成功。若执行失败,则将这条消费信息的执行状态更新为失败,继续存储至消息消费表中,以便监视。在这里接收端并没有对消费信息进行处理,例如可以理解为消费者端在购买商品时,消费者端在完成支付业务途中,放弃了购买,或者理解为消费者端没有对消费信息进行处理,或者又可以理解为消费者端没有消费。此时根据消息标志,执行相应的消费任务流程,若执行成功,在完成消费任务,可以理解为,因为发送端发送了消费信息,而接收端没有对这条消费信息进行处理,此时发送端在发送了消费信息一段时间后,接收不到接收端的反馈,则直接按照消费任务流程,使这条消费信息在消息消费表中的执行状态更新为成功,若更新失败,则将这条消费信息的执行状态更新为失败,继续存储至消息消费表中,以便监视。值得注意的是,在这里将消费信息的状态更新为成功,并不是表示接收端支付了相关费用,这里表示为,因为接收端并没有对这条消费信息进行处理,对后续这条消费信息的处理过程。执行相应的消费任务流程,可以理解为,因为消费任务不同,每一种消费任务对应一种工作流程,在这里,具体的消费任务根据消费标志判断。
67.请参阅图1所示,在本发明的一个实施例中,当消费信息存储至消息消费表中,接收端在处理的过程超过过期时间的限定,或者因为消息服务器宕机使接收端在处理消费信息时超过过期时间的限定时,根据消息标志,执行相应的消费任务流程。若执行成功,则完成消费任务,并将将这条消费信息的执行状态信息更新为成功。若执行失败,则将这条消费信息的执行状态信息更新为失败,继续存储至消息消费表中,以便监视。在这里,接收端在处理的过程中超过过期时间的限定,或者因为消息服务器宕机使接收端在处理消费信息时超过过期时间的限定也可以理解为消费者端没有消费。
68.请参阅图1所示,在本发明的一个实施例中,当多条同一种消息标志的消费信息存储至消息消费表中时,消费信息的执行状态信息为处理中但未超过过期时间的限定,更新同一种消息标志的消费信息的其中一条,以完成消费任务。判断这条消费信息是否已经消费成功,若消费成功,则消费信息幂等返回消费成功。即当多条同一种消息标志的消费信息其中一条消费信息的执行状态信息为成功时,当其他多条同一种消息标志的消费信息再次重复消费时候,根据消费信息消费表的设置,例如会出现报错信息,接收端获取报信息避免重复消费。若消费失败,则进入延迟消费队列,即每隔一时间反馈给发送端,发送端将消费信息再重新发送一次,直到将这条消费任务执行成功。其中所述延迟消费队列例如可以通过远程字典服务,用于缓存消费信息,并按照先进先出的规则,每隔一时间将消费信息重新发送一次,直到将消费任务执行成功。在步骤s500中,将更新后的消费信息传送至接收端,
以完成消费信息的传送。
69.请参阅图3所述,在本发明的一个实施例中,为了更好的理解的本发明,发送端和接收端之间传送消费信息的步骤包括:
70.s10、获取发送端发送的消费信息,且每条消费信息具有不同的消息标志。
71.s20、设置消息消费表,将消费信息存储至消息消费表。
72.s30、判断接收端对消费信息是否进行处理和这条消费信息的过期时间是否超时。
73.s31、接收端并没有对消费信息进行处理或者消费信息的过期时间超时,此时根据消息标志,执行相应的消费任务流程。
74.s312、判断执行相应的消费任务流程是否成功。
75.s313、若执行成功,则完成消费任务,并这条消费信息的执行状态信息更新为成功,继续存储至消息消费表中。
76.s314、若执行失败,则将这条消费信息的执行状态信息更新为失败,继续存储至消息消费表中,以便监视。
77.s32、当接收端正在对该消费信息进行处理,且过期时间未超时,判断接收端是否已经消费成功。
78.s321、若消费成功,则该消费信息的执行状态更新为成功。
79.请参阅图3所述,在本发明的一个实施例中,当多条同一种消息标志的消费信息存储至消息消费表中,此时消费信息的执行状态信息为处理中但未超过过期时间的限定,更新其中同一种消息标志的消费信息的其中一条,以完成消费任务。若消费成功,则消费信息幂等返回消费成功,即这条消费信息在消息消费表中的执行状态信息更新为成功。即当多条同一种消息标志的消费信息其中一条消费信息的执行状态信息为成功,当其他多条同一种消息标志的消费信息再次重复消费时候,根据消费信息消费表的设置,例如出现报错信息,接收端获取报错信息并,避免重复消费。
80.s322、若消费失败,则该消费信息进入延迟消费队列,即每隔一时间反馈给发送端,接收端获取发送端再次重新发送该消费信息,直到将消费任务执行成功。
81.请参阅图4所示,在本发明的另一个实施例中,本发明还提供一种消费信息的传送系统,所述消费信息的传送系统包括获取模块100、存储模块200和更新模块300。
82.请参阅图4所示,在本发明的一个实施例中,获取模块100用于获取发送端发送的消费信息,每个所述消费信息具有一个消息标志,其中,不同的所述消息标志表示不同的消费任务。其中,在本实施例中的,发送端例如可以为商家端,商家端根据消费者在购买东西时支付相关费用或者退货赔偿等业务时,商家端根据业务流程辅助消费者完成消费,在此期间商家端发送消费信息给接收端。发送端发送消费信息,所述消费信息例如包括注册会员信息、验证信息以及支付信息等。每一种消费信息都具有不同的消息标志,例如可以包括但不仅限于注册会员信息的消息标志,验证信息的消息标志以及支付信息的消息标志。不同的消息标志代表不同的消费任务,通过消息标志,可以区别不同的消费任务,即消费任务例如是注册会员、消息验证以及消费支付等。
83.请参阅图4所示,进一步的,在本发明的一个实施例中,每种消息标志是唯一的,消息标志例如为一串数字组合或者为字母和数字的组合。在本实施例中,消息标志例如为一串数字,且消息标志中例如包括日期信息、消费任务编号信息、身份信息和流水号信息。日
期信息为发送端发送消费信息时的日期,例如可以具体到分钟或者秒。消费任务编号信息表示发送端要办理的业务信息,业务信息如上述所述的注册会员、支付或者退货退款等,其中,注册会员任务的编号例如为号1,支付任务的编号例如为2,退货退款的标号例如为3等,且不限于此。身份信息表示消费者在商家端注册的身份信息,为了避免在数据库中根据消息标志搜索消费信息时,时间耗费过长以及保护消费者信息的隐私,在这里,只使用消费者部分身份信息,例如消费者身份信息的后四位。例如一个消息标志为“202111221154 21234 1234”,表示为身份信息尾号为“1234”的消费者,在2021年11月22日上午11点54分办理支付业务,所述支付业务的流水编号为“1234”。
84.请参阅图3和图4所示,在本发明的一个实施例中,获取模块100还用于,获取包括相同消息标志的消费信息。在本实施例中,接收端例如为消费者所在的消费端,当消费者端在接收到不同的消费任务时,根据消费任务流程完成消费,但是在这其中,消费者端可能会接收到多条重复的消费信息。为了保证消费者端和商家端的利益,避免消费者和商家端的重复消费,造成金钱上损失。本发明在接收消费信息时,根据消息标志,获取与金钱业务相关的消费信息。其中,获取包括多条同一种消息标志的所述消费信息,包括以下步骤:
85.s210、设置拦截文件。
86.s220、在所述拦截文件中设置拦截消息标志。
87.s230、当所述消费信息的消费标志为拦截消息标志时,将所述消费信息保存在消息消费表中。
88.具体的,在步骤s210中,设置拦截文件。在接收端中,配置消费信息的拦截文件,通过拦截文件,以获取发送端发送的消费信息,所述拦截文件例如为一种基于面向切面编程(aspect oriented programming,aop)开发的一个插件中的文件。在步骤s220中,在拦截文件中设置拦截消息标志。根据实际情况,在进行消费信息拦截时,有选择的拦截部分消费信息。具体的,实现这种只拦截部分消费任务的设置,还需要在拦截文件中定义拦截消息标志,以及定义关于消息幂等的相关内容,所述定义关于消息幂等的相关内容例如通过在拦截文件中使用消息幂等注解,以实现只拦截部分消费任务的设置。在步骤s230中,当所述消费信息的消费标志为拦截消息标志时,将所述消费信息保存在消息消费表中。在本实施例中,例如只拦截涉及金额的消费信息,如支付信息和退货信息等,即在拦截文件中定义关于支付和退货的拦截消息标志。当然在其他的实施例中,还可以拦截发送端发送的所有消费信息,具体的需要拦截的消费信息根据实际需求而定。并且还根据消息标志,进行同一种消息标志的多条消费信息的幂等控制。
89.请参阅图4所示,在本发明的一个实施例中,存储模块200与获取模块100连接,用于设置消息消费表,将获取的消费信息存储至所述消息消费表中。其中,所述消息消费表中例如包括消息名信息、消息内容信息、执行状态信息、创建时间信息、唯一伪劣信息等,且不限于此,具体的,根据实际业务需求添加。
90.其中,消息名信息为所述消费任务的名称,如注册会员、支付和退货等,消息名称例如同样用数字编号代替。消息内容信息中存储着消息标志,根据所述消息内容信息中存储的信息,进行同一种消息标志的多条消费信息的幂等控制,即对重复的消费信息进行控制。因为消息标志是唯一,因此根据消息标志以及只能消费成功一次的逻辑,将消息标志设置为主键索引,通过主键索引去除重复的消费信息。例如当多条同一种消息标志的消费信
息,其中一条消费信息的执行状态信息为成功,当其他多条同一种消息标志的消费信息再次重复消费时候,例如出现报错信息,并给出消费者端提示,避免重复消费。执行状态信息包括成功、失败、处理中和待处理,通过每条消费信息的执行状态信息,判断当前这条消费信息所述的状态。其中,每一条消费信息在存储至消息消费表中的默认初始出状态为待处理。创建时间信息为一条消费信息存储在消息消费表时的时间,并且在此基础上,在消息消费列表上还包括的过期时间信息,所述过期时间信息用于设置处理一条消费信息的过期时间,所述过期时间例如为600s、700s或800s,且不限于此,具体的根据实际处理业务的复杂程度,设置过期时间的具体的数值。设置过期时间的方式,例如可以设置过期时间文件,将所述过期时间文件通过消费者端更新的方式,设置在消费者端内,使消息消费表中的消费信息,根据所述创建时间的基础上,超过所述过期时间后,即消费者端没有消费成功,或者理解为消费者端没有消费。唯一伪劣信息用于标识消费信息成功的状态,当所述消费信息执行成功后,唯一伪劣信息将显示为消息标志和字母组合的方式,以表示消费信息的消费任务完成。
91.请参阅图4所示,在本发明的一个实施例中,当接收到所述消费信息后,判断所述消息消费表中是否存储有该所述消费信息的消息标志,若所述消费信息表中没有存储该所述消费信息的消息标志,则将该所述消费信息存储在所述消息表中,并对该所述消费信息进行更新;若所述消费信息表中存储有该所述消费信息的消息标志,则将该所述消费信息存储在所述消息表中,但不会对该所述消费信息进行更新。通过将消费信息存储至消息消费表中,根据消费内容中信息,接收端根据消费任务流程完成消费。消息消费表例如设置在接收端系统的数据库中,通过在数据库中搜索唯一的消息标志,对于重复的消费信息,接收端只需要处理其中一条消费信息。具体的,例如消费者端在进行商品退货,若是因为网络波动或其他原因,同一件商品,发送端发送多条重复的消费信息,若不进行去重处理,消费者端在不清楚是否成功消费的情况下,对同一件商品进行了多商品退货,会造成发送端的损失。又例如,消费者端在进行支付商品费用的时候,又因为网络波动或其他原因,消费者端不清楚是否付款完成的情况下,消费者端又重新支付商品的费用,也会造成消费者端的损失。因此建立消息消费表,消费表中存储着消费信息的执行状态信息和消息内容信息,依据执行状态信息和消息内容信息,进行消费信息去重,以及根据消费信息状态信息判断,消费者端是否完成消费任务。
92.请参阅图4所示,在本发明的一个实施例中,更新模块300与存储模块200连接,更新所述消息消费表中的任意一条消费信息,以及更新的消费信息传送至接收端,以完成消费信息的传送。消费信息被存储至消息消费表中,等待被处理,以完成消费任务。
93.请参阅图3和图4所示,在本发明的一个实施例中,当消费信息存储至消息消费表中,接收端并没有对消费信息进行处理时,则根据消息标志,执行相应的消费任务流程,若执行成功,则完成消费任务,并将这条消费信息的执行状态信息更新为成功。若执行失败,则将这条消费信息的执行状态更新为失败,继续存储至消息消费表中,以便监视。在这里接收端并没有对消费信息进行处理,例如可以理解为消费者端在购买商品时,消费者端在完成支付业务途中,放弃了购买,或者理解为消费者端没有对消费信息进行处理,或者又可以理解为消费者端没有消费。此时根据消息标志,执行相应的消费任务流程,若执行成功,在完成消费任务,可以理解为,因为发送端发送了消费信息,而接收端没有对这条消费信息进
行处理,此时发送端在在发送了消费信息一段时间后,接收不到接收端的反馈,则直接按照消费任务流程,使这条消费信息在消息消费表中的执行状态更新为成功,若更新失败,则将这条消费信息的执行状态更新为失败,继续存储至消息消费表中,以便监视。值得注意的是,在这里将消费信息的状态更新为成功,并不是表示接收端支付了相关费用,这里表示为因为接收端并没有对这条消费信息进行处理,对后续这条消费信息的处理过程。执行相应的消费任务流程,可以理解为因为消费任务不同,每一种消费任务对应一种工作流程,在这里,具体的消费任务根据消费标志判断。
94.请参阅图3和图4所示,在本发明的一个实施例中,当消费信息存储至消息消费表中,接收端在处理的过程超过过期时间的限定,或者因为消息服务器宕机使接收端在处理消费信息时超过过期时间的限定时,根据消息标志,执行相应的消费任务流程。若执行成功,则完成消费任务,并将将这条消费信息的执行状态信息更新为成功。若执行失败,则将这条消费信息的执行状态信息更新为失败,继续存储至消息消费表中,以便监视。在这里,接收端在处理的过程中超过过期时间的限定,或者因为消息服务器宕机使接收端在处理消费信息时超过过期时间的限定也可以理解为消费者端没有消费。
95.请参阅图3和图4所示,在本发明的一个实施例中,当多条同一种消息标志的消费信息存储至消息消费表中时,消费信息的执行状态信息为处理中但未超过过期时间的限定,更新同一种消息标志的消费信息的其中一条,以完成消费任务。判断这条消费信息是否已经消费成功,若消费成功,则消费信息幂等返回消费成功。即当多条同一种消息标志的消费信息其中一条消费信息的执行状态信息为成功时,当其他多条同一种消息标志的消费信息再次重复消费时候,根据消费信息消费表的设置,例如会出现报错信息,接收端获取报信息避免重复消费。若消费失败,则进入延迟消费队列,即每隔一时间反馈给发送端,发送端将消费信息再重新发送一次,直到将这条消费任务执行成功。其中所述延迟消费队列例如可以通过远程字典服务,用于缓存消费信息,并按照先进先出的规则,每隔一时间将消费信息重新发送一次,直到将消费任务执行成功。
96.在本发明的一个实施例中,所述消费信息的传送系统,例如设置在一个消息服务器中,所述消息服务器例如设置在接收端。所述服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算机设备。
97.请参阅图5所示,本发明还提出一种计算机可读存储介质,计算机可读存储介质10存储有计算机指令20,计算机指令20用于使用所述消费信息的传送方法。计算机可读存储介质10可以是,电子介质、磁介质、光介质、电磁介质、红外介质或半导体系统或传播介质。计算机可读存储介质10还可以包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、硬磁盘和光盘。光盘可以包括光盘-只读存储器(cd-rom)、光盘-读/写(cd-rw)和dvd。
98.请参阅图6所示,本发明还提供一种电子设备,包括处理器30和存储器40,存储器40存储有程序指令,处理器30运行程序指令实现所述消费信息的传送方法。处理器30可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程
逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件;存储器40可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器40也可以为随机存取存储器(random access memory,ram)类型的内部存储器,处理器30、存储器40可以集成为一个或多个独立的电路或硬件,如:专用集成电路(application specificintegrated circuit,asic)。需要说明的是,存储器40中的计算机程序可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
99.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献