一种异步银行消息的处理方法和装置与流程

文档序号:32307982发布日期:2022-11-23 10:37阅读:81来源:国知局
一种异步银行消息的处理方法和装置与流程

1.本技术涉及通信技术领域,特别是涉及一种异步银行消息的处理方法和装置。


背景技术:

2.银行消息即银行向客户发送的短消息,也可以称为行信。目前银行的待办事项基本都需要行信通知,行信的发送一般采取异步处理的方式,通常通过一次性调用消息服务器实现,如果行信发送失败的话,接收者(即银行的客户)无法及时接收到银行传达的信息。
3.基于此,在行信提醒的使用场景越来越多的今天,银行的负载压力越来越大,亟待提供一种解决目前行信发送失败的方法。


技术实现要素:

4.本技术实施例提供了一种异步银行消息的处理方法和装置,对于待发送给客户的银行消息,尤其对于发送失败的银行消息,能够保证银行消息成功发送到客户的终端设备上,提高银行系统的服务水平。
5.第一方面,本技术实施例提供了一种异步银行消息的处理方法,应用于银行系统的消息服务器,所述消息服务器包括jms模块,所述方法包括:
6.所述jms模块采用jms的消息确认模式,向第一客户的终端设备发送第一银行消息;
7.若确定所述第一银行消息发送失败,则,为所述第一银行消息所属的目标事务添加标签,所述标签用于指示所述消息服务器需要重新发送的事务;
8.基于所述标签,重新发送所述第一银行消息至所述第一客户的终端设备。
9.可选地,所述方法还包括:
10.若确定所述目标事务中各银行消息均发送成功,则,删除所述目标事务。
11.可选地,所述方法还包括:
12.基于所述第一银行消息对应的jms的消息标识和答复指示,确定所述第一银行消息是否发送成功。
13.可选地,在所述向第一客户的终端设备发送第一银行消息之前,所述方法还包括:
14.apache mina模块将待发送的信息转换为所述第一银行消息,所述第一银行消息符合所述消息服务器与所述第一客户的终端设备之间的通信协议要求;
15.os cache模块存储所述第一银行消息。
16.可选地,所述apache mina模块基于java5.x平台设计,并执行jms v1.1通信协议。
17.可选地,所述目标事务还包括第二银行消息,所述方法还包括:
18.所述jms模块采用jms的消息确认模式,向第二客户的终端设备发送第二银行消息;
19.所述目标事务中有至少一条银行消息发送失败(例如第一银行消息发送失败或第二银行消息发送失败),则,为所述目标事务添加所述标签;
20.基于所述标签,重新发送所述目标事务中的所有银行消息,包括重新发送所述第二银行消息至所述第二客户的终端设备。
21.第二方面,本技术实施例还提供了一种异步银行消息的处理装置,应用于银行系统的消息服务器,所述消息服务器包括jms模块,所述装置包括:
22.发送单元,用于所述jms模块采用jms的消息确认模式,向第一客户的终端设备发送第一银行消息;
23.处理单元,用于若确定所述第一银行消息发送失败,则,为所述第一银行消息所属的目标事务添加标签,所述标签用于指示所述消息服务器需要重新发送的事务;
24.重发单元,用于基于所述标签,重新发送所述第一银行消息至所述第一客户的终端设备。
25.可选地,所述装置还包括:
26.删除单元,用于若确定所述目标事务中各银行消息均发送成功,则,删除所述目标事务。
27.可选地,所述装置还包括:
28.确定单元,用于基于所述第一银行消息对应的jms的消息标识和答复指示,确定所述第一银行消息是否发送成功。
29.可选地,所述装置还包括:
30.转换单元,用于在所述向第一客户的终端设备发送第一银行消息之前,apache mina模块将待发送的信息转换为所述第一银行消息,所述第一银行消息符合所述消息服务器与所述第一客户的终端设备之间的通信协议要求;
31.存储单元,用于os cache模块存储所述第一银行消息。
32.可选地,所述apache mina模块基于java5.x平台设计,并执行jms v1.1通信协议。
33.可选地,所述目标事务还包括第二银行消息,
34.所述发送单元,还用于所述jms模块采用jms的消息确认模式,向第二客户的终端设备发送第二银行消息;
35.所述重发单元,还用于基于所述标签,重新发送所述目标事务中的所有银行消息,包括重新发送所述第二银行消息至所述第二客户的终端设备。
36.第三方面,本技术实施例还提供了一种电子设备,所述电子设备包括处理器以及存储器:
37.所述存储器用于存储计算机程序;
38.所述处理器用于根据所述计算机程序执行上述第一方面提供的所述方法。
39.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面提供的所述方法。
40.由此可见,本技术实施例具有如下有益效果:
41.本技术实施例提供了一种异步银行消息的处理方法,应用于银行系统的消息服务器,所述消息服务器包括jms模块,所述方法包括:所述jms模块采用jms的消息确认模式,向第一客户的终端设备发送第一银行消息;若确定所述第一银行消息发送失败,则,为所述第一银行消息所属的目标事务添加标签,所述标签用于指示所述消息服务器需要重新发送的事务;基于所述标签,重新发送所述第一银行消息至所述第一客户的终端设备。这样,将jms
的消息服务器集成于银行系统,利用jms的消息确认模式,发送失败会触发重新发送,实现银行消息的准确送达,有效的解决了目前银行消息异步发送失败无法重新发送带来的问题,从而提高银行系统的服务水平。
附图说明
42.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
43.图1为本技术实施例提供的一种异步银行消息的处理方法的流程示意图;
44.图2为本技术实施例中一种确定银行消息发送过程的流程示意图;
45.图3为本技术实施例中异步银行消息的处理方法的一实例的流程示意图;
46.图4为本技术实施例提供的一种异步银行消息的处理装置400的结构示意图;
47.图5为本技术实施例提供的一种电子设备500的结构示意图。
具体实施方式
48.需要说明的是,本发明提供的一种异步银行消息的处理方法和装置可用于大数据领域、计算机技术领域或金融领域。上述仅为示例,并不对本发明提供的一种异步银行消息的处理方法和装置的应用领域进行限定。
49.本发明提供的一种异步银行消息的处理方法和装置可用于大数据领域、计算机技术领域、金融领域或其他领域,例如,可用于银行系统中异步银行消息的处理场景。其他领域为除大数据领域、计算机技术领域、金融领域之外的任意领域。上述仅为示例,并不对本发明提供的一种异步银行消息的处理方法和装置的应用领域进行限定。
50.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术实施例作进一步详细的说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,并非对本技术的限定。另外,还需要说明的是,为便于描述,附图中仅示出了与本技术相关的部分,并非全部结构。
51.银行通常通过短消息将待办事项通知客户,客户可以基于银行发来的短消息了解账户基本信息、银行金融政策等可能与自身利益相关的信息。银行发送给客户的短消息,可以统称为银行消息,也可以称为行信。
52.目前,银行消息通常采用异步处理方式,通过一次性调用消息服务器的方式实现发送,但是,该方法无法解决银行消息发送失败的问题,即,银行消息发送失败后无法自动重新发送。这样,随着银行消息用于提醒客户的使用场景越来越多,银行系统的负载压力越来越大,银行消息发送失败的场景会越来越容易触发,亟待提供一种能够有效解决银行消息异步发送失败的技术方案。
53.基于此,本技术实施例提供了一种异步银行消息的处理方法,应用于银行系统的消息服务器,所述消息服务器包括jms模块,所述方法包括:所述jms模块采用jms的消息确认模式,向第一客户的终端设备发送第一银行消息;若确定所述第一银行消息发送失败,则,为所述第一银行消息所属的目标事务添加标签,所述标签用于指示所述消息服务器需要重新发送的事务;基于所述标签,重新发送所述第一银行消息至所述第一客户的终端设
备。
54.如此,本技术实施例提供的方法中,将jms的消息服务器集成于银行系统,利用jms的消息确认模式,发送失败会触发重新发送,实现银行消息的准确送达,有效的解决了目前银行消息异步发送失败无法重新发送带来的问题,从而提高银行系统的服务水平。
55.为便于理解本技术实施例提供的异步银行消息的处理方法的具体实现,下面将结合附图进行说明。
56.需要说明的是,实施该异步银行消息的处理方法的主体可以为本技术实施例提供的异步银行消息的处理装置,该异步银行消息的处理装置可以承载于电子设备或电子设备的功能模块中。本技术实施例中的电子设备,可以是任意的能够实施本技术实施例中的异步银行消息的处理方法的设备,例如可以是iot设备。该异步银行消息的处理装置或集成该异步银行消息的处理装置的电子设备,均可以作为银行系统的一部分或能够与银行系统交互。
57.图1为本技术实施例提供的一种异步银行消息的处理方法流程示意图。该方法可以应用于银行系统的消息服务器,所述消息服务器至少可以包括jms模块。该消息服务器可以对应如图4所示的异步银行消息的处理装置400中(即,该方法可以应用于异步银行消息的处理装置400),或者,该消息服务器也可以对应图5所示的电子设备500中(即该方法也可以应用于电子设备500)。
58.如图1所示,该方法例如可以包括:
59.s101,jms模块采用jms的消息确认模式,向第一客户的终端设备发送第一银行消息。
60.jms,即java消息服务(java message service)应用程序接口,是一个java平台中关于面向消息中间件(message-oriented middleware,mom)的应用程序接口(application programming interface,api),用于在两个应用程序之间或分布式系统中发送消息,进行异步通信。jms是一个与具体平台无关的api,绝大多数mom提供商都对jms提供支持。
61.本技术实施例中,消息服务器,是在银行系统的消息中间服务器上进行改进,例如,基于java5.x平台设计了apache mina框架,执行jms v1.1通信协议。此外,还可以在缓存待发送的银行消息时采用高性能缓存框架os cache。本技术实施例提及的消息服务器,例如可以包括:jms模块、apache mina模块和os cache模块。apache mina模块,用于读取、转换银行消息相关文件;os cache模块,用于将银行消息在缓存中存储;jms模块,用于提供消息确认模式,将银行消息准确发送至收件人手中。
62.作为一个示例,在s101之前,该方法还可以包括:apache mina模块将待发送的信息转换为所述第一银行消息,所述第一银行消息符合所述消息服务器与所述第一客户的终端设备之间的通信协议要求;os cache模块存储所述第一银行消息。其中,所述apache mina模块基于java5.x平台设计,并执行jms v1.1通信协议。银行消息的消息通知模板一般为文本格式,系统启动时,首先,会加载待发送的内容对应的消息通知模板(也可以称为行信消息定义文件),然后,会将所加载的消息通知模板按照所采用的通信协议(如jms v1.1)转换成可以被发送的银行消息(如第一银行消息),并且将该待发送的银行消息保存至缓存中,例如,将第一银行消息缓存采用高性能缓存框架os cache模块中。
63.s102,若确定所述第一银行消息发送失败,则,为所述第一银行消息所属的目标事
务添加标签,所述标签用于指示所述消息服务器需要重新发送的事务。
64.s103,基于所述标签,重新发送所述第一银行消息至所述第一客户的终端设备。
65.其中,s101和s102之间,该消息服务器还会判断第一银行消息是否发送成功。例如,该方法还可以包括:基于所述第一银行消息对应的jms的消息标识(message id)和答复指示(reply to),确定所述第一银行消息是否发送成功。其中,message id和reply to属于第一银行消息的两个头(header)属性,message id用于唯一标识包括至少一条银行消息的事务,一个事务对应一个message id,一个事务内的银行消息共用该事务对应的唯一message id;replyto的值用于指示是否答复,例如,reply to=1指示答复,replyto=0指示未答复。
66.其中,基于所述第一银行消息对应的jms的message id和reply to,确定所述第一银行消息是否发送成功的过程,例如可以如图2所示,其中,a为银行系统或银行系统中用于管理银行消息的模块,b为接收第一银行消息的终端设备,q.a为从a到b方向上的消息中间服务器,q.b为从b到a方向上的消息中间服务器,q.a和q.b可以是两个独立的实体设备,也可以是同一实体设备内的两个功能模块,本技术实施例中提及的消息服务器即指包括了q.a和q.b的一个服务器。a发送目标事务到q.a;q.a缓存目标事务后,向b发送目标事务中的第一银行消息;b接收到第一银行消息后,通过q.b向a反馈答复消息,b设定相关性标识(correlation id)为答复消息中的message id;a接收到答复消息后,匹配correlation id和message id,确定第一银行消息是否发送成功。
67.如果第一银行消息发送失败,则,a至少通知q.a为第一银行消息所属的目标事务添加标签。
68.如果目标事务中的所有银行消息按照上述流程发送后均发送成功,则,a可以通知q.a删除目标事务,或者,q.a发送目标事务的所有银行消息后均未接收到添加标签的通知(或发送失败的通知),q.a可以不等a的通知而主动删除目标事务。
69.其中,删除目标事务即删除目标事务中的所有银行消息。删除目标事务,一种情况下,可以将目标事务从缓存中真实的删除;另一种情况下,也可以将目标事务在缓存中的状态标记为成功发送状态。
70.其中,标签可以打在目标事务维度,该标签指示对目标事务进行重新发送,对目标事务的重新发送即重新发送目标事务中所有的消息;或者,标签可以打在目标事务中的各银行消息中,该标签指示对银行消息进行重新发送。
71.在一些实现方式中,对于目标事务中还可能包括的第二银行消息,该方法还可以包括:jms模块采用jms的消息确认模式,向第二客户的终端设备发送第二银行消息;若目标事务中有至少一条银行消息发送失败(例如第一银行消息发送失败或第二银行消息发送失败),则,为所述目标事务添加所述标签;基于所述标签,重新发送所述目标事务中的所有银行消息,包括重新发送所述第二银行消息至所述第二客户的终端设备。若目标事务中所有银行消息都发送成功,则,删除所述目标事务。其中,第一客户和第二客户可以相同也可以不同。
72.需要说明的是,本技术实施例中,jms提供的消息确认模式,会把消息发送过程置于一个事务中,同一个消息发送者把一组消息发给消息服务器,该组消息视作一个事务,如果该事务中某条消息发送失败,则这个事务中的所有消息都会认为发送失败,消息接收过
程也会置于一个事务范围内,在jms会话发出提交或者回退之前,这些消息都不会从消息服务器中移除,如果发出回退,会把该事务中的消息打上重新传输的标签,后续重新将有该标签的消息发送至消息接收者。如果消息确认接收并返回答复消息,则将该事务下的所有消息从消息服务器移除,表示该事务中的所有消息已发送成功。
73.可见,该方法中,基于如jms v1.1通信协议的异步消息处理框架,可连接多种消息服务器,还提供了消息确认模式,有效解决银行消息异步发送失败时的问题。这样,将jms的消息服务器集成于银行系统,利用jms的消息确认模式,发送失败会触发重新发送,实现银行消息的准确送达,有效的解决了目前银行消息异步发送失败无法重新发送带来的问题,从而提高银行系统的服务水平,能够将重要的、相关的信息及时、准确的通知客户。
74.为了使得本技术实施例提供的方法更加清楚且易于理解,下面结合图3对该方法的一个具体实例进行说明。
75.如图3所示,本实施例例如可以包括:
76.s301,apache mina系统启动时,读取之前定义好的银行消息定义文件。
77.s302,读取后,存储至os cache缓存框架中。
78.s303,利用jms的消息确认模式发送消息。
79.s304,判断消息发送成功与否,如果成功,则,执行s305,否则执行s306。
80.s305,从消息服务器中删除所述消息。
81.s306,将消息服务器中所述消息所属的事务打上标签,执行s303,该标签用于指示重新发送该事务中的所有消息。
82.其中,s301~s306中的消息为银行消息。
83.可见,本技术实施例提供的方法中,首先,利用apache mina框架读取银行消息定义文件,并作相应的转换,然后,利用os cache框架将银行消息在缓存中存储住,接着,利用jms的消息确认模式,实现银行消息的准确送达,发送失败会触发重新发送的功能。
84.参见图4,本技术实施例还提供一种异步银行消息的处理装置400,应用于银行系统的消息服务器,所述消息服务器包括jms模块,所述装置400可以包括:发送单元401、处理单元402和重发单元403。其中:
85.发送单元401,用于所述jms模块采用jms的消息确认模式,向第一客户的终端设备发送第一银行消息;
86.处理单元402,用于若确定所述第一银行消息发送失败,则,为所述第一银行消息所属的目标事务添加标签,所述标签用于指示所述消息服务器需要重新发送的事务;
87.重发单元403,用于基于所述标签,重新发送所述第一银行消息至所述第一客户的终端设备。
88.可选地,所述装置400还包括:
89.删除单元,用于若确定所述目标事务中各银行消息均发送成功,则,删除所述目标事务。
90.可选地,所述装置400还包括:
91.确定单元,用于基于所述第一银行消息对应的jms的消息标识和答复指示,确定所述第一银行消息是否发送成功。
92.可选地,所述装置400还包括:
93.转换单元,用于在所述向第一客户的终端设备发送第一银行消息之前,apache mina模块将待发送的信息转换为所述第一银行消息,所述第一银行消息符合所述消息服务器与所述第一客户的终端设备之间的通信协议要求;
94.存储单元,用于os cache模块存储所述第一银行消息。
95.可选地,所述apache mina模块基于java5.x平台设计,并执行jms v1.1通信协议。
96.可选地,所述目标事务还包括第二银行消息,
97.所述发送单元401,还用于所述jms模块采用jms的消息确认模式,向第二客户的终端设备发送第二银行消息;
98.所述重发单元402,还用于基于所述标签,重新发送所述目标事务中的所有银行消息,包括重新发送所述第二银行消息至所述第二客户的终端设备。
99.需要说明的是,该装置400的具体实现方式以及达到的技术效果,均可以参见图1所示的方法中的相关描述。
100.此外,本技术实施例还提供了一种电子设备500,如图5所示,所述电子设备500包括处理器501以及存储器502:
101.所述存储器502用于存储计算机程序;
102.所述处理器501用于根据所述计算机程序执行图1提供的方法。
103.此外,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行本技术实施例提供的方法。
104.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,rom)/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本技术各个实施例或者实施例的某些部分所述的方法。
105.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
106.以上所述仅是本技术的优选实施方式,并非用于限定本技术的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1