1.本技术涉及信息处理领域,涉及但不限于一种信息处理方法、装置、设备及存储介质。
背景技术:2.在医生与患者通过各自的设备进行沟通时,如果医生所用的设备所处的网络环境较差,那么可能出现医生所用的设备无法及时收到患者所用的设备发送的消息的情况。针对这种情况,相关技术中,患者所用的设备只是向医生所用的设备发送提醒,以提醒医生所用的设备所处的网络环境不佳。这样,由于患者所用的设备只是提醒医生所用的设备所处的网络环境不佳,因此,对于医生所用的设备而言,该设备仍然不会接收到患者所用的设备发送的消息。这样,造成用户的体验效果不佳。
技术实现要素:3.本技术为解决相关技术中存在的至少一个问题而提供一种信息处理方法、装置、设备及存储介质,对于医生所用的设备而言,在网络环境较差的环境下,仍然可以接收到患者所用的设备发送的消息,从而可以提高用户的使用体验。
4.本技术的技术方案是这样实现的:
5.第一方面,本技术实施例提供一种信息处理方法,所述方法包括:
6.接收第一消息;所述第一消息为第一设备发送的消息;
7.在设定的时间段后,判断所述第一消息是否满足设定条件;其中,所述第一消息满足所述设定条件表征未向所述第一设备回复所述第一消息;
8.如果所述第一消息满足所述设定条件,通过第一通信方式,将所述第一消息发送至第二设备;所述第一通信方式为不同于数据网络的通信方式。
9.第二方面,本技术实施例提供了一种信息处理装置,所述装置包括:
10.接收单元,用于接收第一消息;所述第一消息为第一设备发送的消息;
11.判断单元,用于在设定的时间段后,判断所述第一消息是否满足设定条件;其中,所述第一消息满足所述设定条件表征未向所述第一设备回复所述第一消息;
12.发送单元,用于如果所述第一消息满足所述设定条件,通过第一通信方式,将所述第一消息发送至第二设备;所述第一通信方式为不同于数据网络的通信方式。
13.第三方面,本技术实施例提供一种电子设备,存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述信息处理方法。
14.第四方面,本技术实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述信息处理方法。
15.本技术提供了一种信息处理方法、装置、设备及存储介质,接收第一消息,并在设定的时间段后,判断所述第一消息是否满足设定条件,如果所述第一消息满足所述设定条
件,通过第一通信方式,将所述第一消息发送至第二设备。其中,所述第一消息为第一设备发送的消息,所述第一消息满足设定条件表征未向第一设备回复所述第一消息,第一通信方式为不同于数据网络的通信方式。这样,在发送第一消息时,先判断是否已向第一设备回复过该第一消息,若未回复,则通过不同于数据网络的方式,即第一通信方式,向第二设备发送第一消息。这样,在第二设备处于网络环境较差的情况下,可通过第一通信方式,向第二设备发送第一消息,从而可以使得第二设备所处的网络环境较差时,仍然可以接收到第一消息,从而可以提高使用第二设备的用户的使用体验。
附图说明
16.图1为本技术实施例提供的一种信息处理系统的可选的结构示意图;
17.图2为本技术实施例提供的信息处理方法的可选的流程示意图;
18.图3为本技术实施例提供的一种信息处理系统的可选的结构示意图;
19.图4为本技术实施例提供的信息处理方法的可选的流程示意图;
20.图5为本技术实施例提供的信息处理方法的可选的流程示意图;
21.图6为本技术实施例提供的信息处理方法的可选的流程示意图;
22.图7为本技术实施例提供的信息处理方法的可选的流程示意图;
23.图8为本技术实施例提供的信息处理方法的可选的流程示意图;
24.图9为本技术实施例提供的信息处理方法的可选的流程示意图;
25.图10为本技术实施例提供的信息处理装置的可选的结构示意图;
26.图11为本技术实施例提供的电子设备的可选的结构示意图。
具体实施方式
27.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对申请的具体技术方案做进一步详细描述。以下实施例用于说明本技术,但不用来限制本技术的范围。
28.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
29.对本技术进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
30.本技术实施例提供的信息处理方法可应用于如图1所示的信息处理系统100,如图1所示,信息处理系统100可包括:第一设备101、信息处理设备102、第二设备103和网络104。第一设备101和信息处理设备102之间通过网络104进行通信,信息处理设备102和第二设备103之间通过网络104进行通信。
31.第一设备安装有即时通信(instant messaging,im)应用程序(application,app),第二设备,安装有即时通信app,从而第一设备和第二设备能够基于即时通信应用程序进行通信。
32.使用第一设备和第二设备的用户为不同的用户。在一示例中,使用第一设备的第
一用户为患者,使用第二设备的第二用户为医生,则患者和医生可以通过该即时通信软件进行实时通信。在另一示例中,使用第一设备的第一用户为医生,使用第二设备的第二用户为患者,则患者和医生可以通过该即时通信软件进行实时通信。
33.信息处理设备,用于接收第一设备发送的第一消息,并将第一消息通过第一通信方式或数据网络发送至第二设备。
34.本技术实施例中,基于图1所示的信息处理设备,信息处理设备可以接收第一消息;所述第一消息为第一设备发送的消息;在设定的时间段后,判断所述第一消息是否满足设定条件;其中,所述第一消息满足所述设定条件表征未向所述第一设备回复所述第一消息;如果所述第一消息满足所述设定条件,通过第一通信方式,将所述第一消息发送至第二设备;所述第一通信方式为不同于数据网络的通信方式。
35.下面,结合图1所示的信息处理设备100的示意图,对本技术实施例提供的信息处理方法、装置、设备和存储介质的各实施例进行说明。
36.本技术实施例提供的一种信息处理方法可应用于信息处理设备,如图2所示,该方法可以包括如下步骤:
37.s201、信息处理设备接收第一消息。
38.这里,第一消息为第一设备发送的消息。
39.在第一设备为患者所使用的设备的情况下,则第一消息为患者在第一设备上编辑的消息,并通过第一设备发送至信息处理设备的消息。
40.在第一设备为医生所使用的设备的情况下,则第一消息为医生在第一设备上编辑的消息,并通过第一设备发送至信息处理设备的消息。
41.这里,信息处理设备以数据网络的方式接收第一消息。
42.本技术实施例中,如图3所示,信息处理设备102可包括:消息服务模块301和消息队列模块302。其中,消息服务模块301在接收到第一设备发送的第一消息后,可将该第一消息发送至消息队列模块302。
43.这里,消息服务模块可用于:接收第一设备发送的第一消息,对接收到的第一消息进行过滤、转换、发送到消息队列模块等。
44.消息队列模块可在信息处理系统中起到解耦的作用,从而使得信息处理系统更容易维护和扩展。
45.s202、信息处理设备在设定的时间段后,判断所述第一消息是否满足设定条件。
46.这里,第一消息满足设定条件表征未向第一设备回复第一消息。其中,第一消息满足设备条件表征目标对象未向第一设备回复第一消息,该目标对象为使用第二设备的对象,该对象可以为用户。
47.在一示例中,若第一设备为患者所使用的设备,则目标对象可为医生,医生可通过第二设备,对第一设备发送的第一消息进行回复。
48.在另一示例中,若第一设备为医生所使用的设备,则目标对象可为患者,患者可通过第二设备,对第一设备发送的第一消息进行回复。
49.信息处理设备在接收到第一消息后,等待设定的时间段后,再判断第一消息是否满足设定条件,若目标对象未回复第一消息,则确定满足设定条件。其中,设定的时间段为根据实际使用需求设定的时间段,可以为2分钟,也可以为其他时间,本技术实施例对此不
进行任何限定。
50.本技术实施例中,信息处理设备接收到第一消息后,对第一消息进行保存,并在保存设定时间段后,对第一消息进行处理。这里,信息处理设备可将第一消息保存在延迟队列中。
51.本技术实施例中,信息处理设备可接收多条第一消息,并将所接收的第一消息进行保存,并判断保存时间达到设定时间段的第一消息是否满足设定条件。
52.本技术实施例中,如图3所示,信息处理设备102还可以包括:实时处理模块303、延迟队列模块304、延迟消息处理器305和数据库306。
53.实时处理模块可用于:接收消息队列模块发送的第一消息,并将接收到的第一消息发送至数据库,以便于后续的查询操作。实时处理模块还可将接收到的第一消息发送至延迟队列模块。
54.延迟队列模块可用于:在设定的时间段后,再对该延迟队列模块中保存的消息进行处理。
55.本技术实施例中,在信息处理设备包括:实时处理模块、延迟队列模块和延迟消息处理器的情况下,如图3所示,消息队列模块302在接收到第一消息后,将该第一消息发送至实时处理模块303,实时处理模块303再将该第一消息发送至延迟队列模块304,该延迟队列模块304在设定的时间段后,再将第一消息发送至延迟消息处理器305,延迟消息处理器305在接收到第一消息后,对接收到的第一消息进行处理,以判断第一消息是否满足设定条件。
56.这里,延迟消息处理器接收的是延迟队列模块发送的第一消息,也就是说,延迟消息处理器是依赖于延迟队列模块的。这样,可以提高触发重试机制的实时性。
57.本技术实施例中,如图3所示,信息处理设备102还可以包括:定时补偿处理器309。
58.在信息处理设备包括定时补偿处理器的情况下,如图3所示,消息队列模块302在接收到第一消息后,将该第一消息发送至实时处理模块303,实时处理模块303再将该第一消息发送至数据库306,数据库306将接收到的第一消息发送至定时补偿处理器309,定时补偿处理器309在接收到第一消息后,对接收到的第一消息进行处理,以判断第一消息是否满足设定条件。
59.这里,定时补偿处理器接收的是数据库发送的第一消息,也就是说,定时补偿处理器是依赖于数据库的。这样,可以提高系统的可靠性和稳定性。
60.s203、如果所述第一消息满足所述设定条件,信息处理设备通过第一通信方式,将所述第一消息发送至第二设备。
61.这里,第一通信方式为不同于数据网络的方式。其中,数据网络的方式可包括无线网络(wireless fidelity,wifi)、移动数据等方式。
62.在一示例中,第一通信方式包括:短信、电话的方式。
63.本技术实施例中,如图3所示,信息处理设备102还可以包括:短信服务模块307,该短信服务模块307可对接电信运营商的应用程序编程接口(application programming interface,api),并通过该api,通过短信的方式,向第二设备发送第一消息。
64.这里,在第一通信方式为短信方式的情况下,延迟消息处理器在判断目标对象未回复第一消息,即第一消息满足设定条件的情况下,延迟消息处理器可先获取目标对象的手机号,在获取到目标对象的手机号后,再通过短信服务模块,将第一消息以短信的方式发
送至第二设备。
65.在信息处理设备接收多条第一设备发送的第一消息的情况下,信息处理设备可通过第一通信方式,将不同的第一消息发送至与不同的第一消息所对应的目标对象。
66.在一示例中,多条第一消息包括:第一消息a和第一消息b,其中,第一消息a对应目标对象a,第一消息b对应目标对象b,则信息处理设备可通过第一通信方式,将第一消息a发送至目标对象a,将第一消息b发送至目标对象b。
67.本技术实施例中,信息处理设备在等待设定时间段后再判断第一消息是否满足设定条件,这样,在等待的时间中,如果信息处理设备判断目标对象所使用的第二设备还未向第一设备回复第一消息,那么表示第二设备所处的网络环境较差,无法接收到第一消息,且无法对第一消息进行回复,此时,信息处理设备将通过第一通信方式,将第一消息发送至第二设备中;在等待的时间中,如果信息处理设备判断第二设备已经向第一设备回复第一消息了,那么表示第二设备所处的网络环境正常,已经接收到第一消息了,此时,由于目标对象所使用的第二设备已经接收到第一消息了,因此,信息处理设备将不再需要通过第一通信方式,将第一消息发送至目标对象所使用的第二设备了。
68.本技术实施例提供一种信息处理方法,接收第一消息,并在设定的时间段后,判断所述第一消息是否满足设定条件,如果所述第一消息满足所述设定条件,通过第一通信方式,将所述第一消息发送至第二设备。其中,所述第一消息为第一设备发送的消息,所述第一消息满足设定条件表征未向第一设备回复所述第一消息,第一通信方式为不同于数据网络的通信方式。这样,在发送第一消息时,先判断是否已向第一设备回复过该第一消息,若未回复,则通过不同于数据网络的方式,即第一通信方式,向第二设备发送第一消息。这样,在第二设备处于网络环境较差的情况下,可通过第一通信方式,向第二设备发送第一消息,从而可以使得第二设备所处的网络环境较差时,仍然可以接收到第一消息,从而可以提高使用第二设备的用户的使用体验。
69.在一些实施例中,如图4所示,上述s202中所述的判断所述第一消息是否满足设定条件,包括:
70.s401、信息处理设备判断是否向所述第一设备发送第二消息。
71.这里,第二消息为通过所述数据网络接收的针对所述第一消息的回复消息。
72.信息处理设备在将第一消息发送至第二设备后,目标对象可以基于第二设备对第一消息进行回复。
73.s402、若未发送所述第二消息,则所述第一消息满足所述设定条件。
74.这里,信息处理设备若没有向第一设备发送第二消息,则表示目标对象未对第一消息进行回复,此时,可判断第一消息满足设定条件。
75.在一些实施例中,上述信息处理方法还包括:信息处理设备判断是否成功发送所述第一消息;若未成功发送,则重新发送所述第一消息,直到成功发送所述第一消息或未成功发送所述第一消息的次数达到第一预设重试次数。
76.这里,信息处理设备在将第一消息发送至第二设备后,还需判断是否成功的将第一消息发送到第二设备了,如果没有发送成功,那么信息处理设备将启动重试策略,重新向第二设备发送第一消息,直到成功发送该第一消息,或者,未成功发送该第一消息的次数达到第一预设重试次数。其中,第一预设重试次数为根据实际需要设定的重试次数,可以为3
次,也可以为其他次数,本技术实施例对此不进行任何限定。
77.在一些实施例中,如图5所示,上述信息处理方法还包括:
78.s501、信息处理设备接收所述第二设备发送的第三消息。
79.这里,第三消息为通过第一通信方式接收的针对第一消息的回复消息。
80.本技术实施例中,信息处理设备在将第一消息发送至第二设备后,目标对象可以基于第二设备对第一消息进行回复,此时,信息处理设备通过第一通信方式接收的针对第一消息的回复消息为第三消息。
81.s502、信息处理设备将所述第三消息通过所述数据网络发送至所述第一设备。
82.这里,信息处理设备在通过第一通信方式,接收到第二设备发送的第三消息后,信息处理设备可将该第三消息通过数据网络的方式发送至第一设备,从而可以使得第一设备向用户展示该第三消息。
83.在一些实施例中,如图6所示,上述s502包括:
84.s601、信息处理设备判断是否向所述第一设备发送所述第二消息。
85.这里,第二消息为通过数据网络接收的针对第一消息的回复消息。
86.s602、若未发送所述第二消息,则信息处理设备将所述第三消息通过所述数据网络发送至所述第一设备。
87.本技术实施例中,若信息处理设备判断未发送第二消息,则表示目标对象所处的网络环境较差,该目标对象针对第一消息的回复第二消息还未通过数据网络发送至信息处理设备,此时,信息处理设备将第三消息通过数据网络发送至第一设备。
88.在一些实施例中,上述s601包括:信息处理设备判断缓存中是否存在所述第二消息的第一属性信息。
89.这里,第一属性信息用于表征第二消息的标识,缓存中存在第一属性信息表征向第一设备发送第二消息。
90.本技术实施例中,若缓存中存在第二消息的第一属性信息,则表示信息处理设备向第一设备发送第二消息了;若缓存中不存在第二消息的第一属性信息,则表示信息处理设备还未向第一设备发送第二消息。
91.在一些实施例中,第一属性信息包括:第一标识和第一消息内容。在第一属性信息包括:第一标识和第一消息内容的情况下,上述判断缓存中是否存在所述第二消息的第一属性信息,包括:判断缓存中是否存在所述第二消息的第一标识;在所述缓存中存在所述第一标识的情况下,判断所述缓存中是否存在所述第一消息内容;其中,所述缓存中存在所述第一消息内容表征所述缓存中存在所述第一属性信息。
92.这里,第一标识用于表示第二消息的标识(identity document,id),可用msgid表示。
93.第一消息内容用于表示第二消息的消息内容(message content,msgcontent)。
94.本技术实施例中,信息处理设备可通过调用电信运营商的api,以短信的方式,接收第二设备发送的第三消息,在接收到第三消息后,可根据目标对象的手机号码,匹配到对应的会话标识(session identity document,sessionid),并判断是否获取到该sessionid,再根据该sessionid从缓存中查找消息记录,若缓存中不存在第二消息的第一标识msgid,则判断缓存中是否存在第二消息的第一消息内容msgcontent,若缓存中不存在
msgcontent,则通过数据网络将第三消息发送至第一设备,并将发送成功的事件记录在缓存中。
95.在一些实施例中,上述信息处理方法还包括:信息处理设备在接收到所述第二消息,且将所述第二消息发送至所述第一设备的情况下,生成所述第一消息的第一属性信息;在所述缓存中保存所述第一属性信息。
96.在一些实施例中,上述信息处理方法还包括:信息处理设备判断是否将所述第三消息成功发送至所述第一设备;若未成功发送,则重新发送所述第三消息,直到所述第三消息发送成功,或未成功发送所述第三消息的次数达到第二预设重试次数。
97.这里,信息处理设备在将第三消息发送至第一设备后,还需判断是否成功的将第三消息发送到第一设备了,如果没有发送成功,那么信息处理设备将启动重试策略,重新向第一设备发送第三消息,直到第三消息发送成功,或者未成功发送所述第三消息的次数达到第二预设重试次数。其中,第二预设重试次数为根据实际需要设定的重试次数,可以为3次,也可以为其他次数,本技术实施例对此不进行任何限定。
98.随着互联网技术的发展,互联网医疗的解决方案也日渐广泛。在互联网医疗问诊流程中,医患沟通的场景十分重要。普通的聊天场景中,聊天的双方身份对等,延迟收到消息,或收到消息不回复可认为是正常现象。但是在互联网医疗中患者付费购买问诊服务,是优先享有权利,并且病情解决的及时性直接影响到患者的健康,所以医生对病人的回复要求准确性和及时性,能让患者有良好的问诊体验。在实际的场景中,医生可能在弱网环境下手机无法使用无线网络(wireless fidelity,wifi),无法使用移动数据(例如,流量),或因为应用的卡顿或进程被杀死等,无法及时接收和回复患者信息。但可靠的消息系统仍然需要让医生能正常接收患者信息,并回复。
99.综上所述,互联网医疗弱网环境或应用运行异常下聊天系统有以下特征:
100.(1)要求医生在弱网环境或应用运行异常下,可正常收到患者发送的消息;
101.(2)要求医生在弱网环境或应用运行异常下,可正常回复患者消息;
102.(3)对于患者来说,医生是否处于弱网环境、应用运行异常、以及医生的回复方式,患者是无感知的,也无需其他操作。
103.这里,针对上述特征(1),当医生使用的终端设备无法接入互联网时,则无法接收到患者发送的消息。
104.针对上述特征(2),当医生使用的终端设备无法接入互联网时,则无法向患者发送消息,
105.针对上述特征(3),由患者发送提醒医生所使用的终端设备处于弱网环境时,降低了患者的使用体验,且并未解决终端设备处于弱网环境无法恢复的问题。
106.目前互联网医院的医患聊天方式还是传统的即时通信方式。简单的基于互联网通信的消息方式,终端在互联网中才能收到消息,无网络则不能收到消息,并且也不能回复消息。某些系统会有短信和电话提醒,但是需要用户操作,降低了用户问诊体验,并且只是做到提醒,医生还是无法直接回复患者信息。
107.针对上述问题,本技术提供了一种信息处理方法,主要解决现有互联网医疗问诊流程中医患聊天场景,医生在弱网环境或应用运行异常下医生与患者无法正常沟通的问题。
108.本技术主要解决的问题包括:
109.(1)由于网络或应用,医生接收不到患者发送的消息,或者,接收患者发送的消息不及时。
110.(2)由于网络或应用问题,医生的回复无法到达消息服务,从而无法触达患者。
111.本技术通过在消息系统中集成短信消息补偿来解决医生在弱网环境或应用运行异常下所出现的问题。本技术具有以下特点:
112.(1)在原消息系统的基础上扩展,对原有消息系统无改动。
113.(2)使用延迟队列精确检查处理患者的每条消息。
114.(3)系统的增强对于患者无感知。
115.(4)系统为医生引入短信接收,回复消息功能,使医生在弱网环境或应用运行异常下可通过短信接收,回复患者消息。
116.下面对本技术提供的一种信息处理方法进行详细描述。
117.本技术在原有消息系统中补充增加了短信提醒和短信回复的方式,以解决医生在弱网环境或应用异常情况下无法及时接收,回复患者消息的问题。
118.本技术中,可包括医生查看和回复患者消息的两种模式,在网络环境较好的场景中,医生可通过app中聊天页和患者沟通。在网络环境较差或app运行异常的场景中,医生无法通过app中聊天页和患者沟通,则可通过短信来与患者沟通病情细节和治疗方案。整体方案描述如下:
119.医生和患者的所有聊天消息都通过“消息服务(即上述实施例中所描述的消息服务模块)”,“消息队列(即上述实施例中所描述的消息队列模块)”及“实时处理模块”将消息存储到数据库中。
120.这里,消息服务包括基本的功能,例如,对外网请求的接入(如用户信息发送请求、用户点击事件上报请求),网关,以及负载均衡等来保障服务的安全性及高性能。消息服务还具有对消息的过滤,转换,发送到消息队列等能力。
121.消息队列在系统中起到解耦的作用,使得系统更容易维护和扩展。当系统用户量达到百万后,在大促或其他活动过程中im系统会承担超于平常几十倍的流量。如果没有消息队列作为缓冲,当大量流量直接到达数据库或其他组件、服务时,这些系统组件和服务没有足够的资源、能力处理激增的流量,这样会使相应的组件和服务性能下降,甚至可能拖垮整个系统。
122.实时处理模块可以对消息队列中的数据流做过滤、聚合等转换、计算操作,最后将处理好的数据存储到数据库、更新到缓存或发送到消息队列。
123.实时处理模块还可处理患者消息,该实时处理模块在接收到消息队列发送的消息后,该实时处理模块将消息发送至延时队列,延时时间为2分钟,延迟消息处理器在2分钟后接收到这条消息,此时延迟消息处理器再查询缓存判断该消息是否已经被医生回复,如果已回复则忽略该消息,如果未被医生回复,则将该消息构建成短信消息发送给医生。
124.实时处理模块还可处理处理医生信息,根据医生信息更新缓存中对应会话的患者的信息回复状态为已回复。
125.实时处理模块还可处理医生点击事件,根据医生点击事件对应的会话更新会话内的消息为已读。
126.延迟消息处理器消费延迟队列中的消息,并检查该消息是否已被医生回复,如果未回复则通过短信服务向医生预留手机号发送患者信息。短信服务集成分布式缓存,缓存所有进行中的聊天会话的聊天记录,在发送信息时在缓存中查找是否已存在消息,有则表示已经发送过,忽略该消息,否则发送,发送成功后记录到缓存。其中,延迟消息处理器消费延迟队列中的消息为延迟消息处理器处理延迟队列中的消息。
127.医生在手机收到系统推送的患者信息,并通短信消息回复,短信消息通过短信服务推送到消息服务,进入正常的消息系统。
128.本技术实施例中,完整的消息补充保障系统可包括以下四个模块:
129.(1)实时处理模块,用于消费全量消息、监听患者消息、根据配置的延迟时间向延迟队列发送患者消息。
130.(2)延迟队列,用于存储延迟消息,并在到达延迟时间时向消费者(即延迟消息处理器)推送延迟消息。
131.(3)延迟消息处理器,用于检查消息是否已读,检查消息是否已回复,检查消息发送时间,将符合条件的消息(例如,会话时间内未回复)生成短信,通过短信服务发送。
132.(4)短信服务,用于发送延迟消息处理器发出的短信,对于发送失败的做重试处理,重试次数可通过配置调整;还用于对于会话中的聊天记录存储到分布式缓存中,每次发送都要校验是否发送过,防止重复发送;还用于接收医生通过短信回复的信息,并将信息推送到消息服务,由消息服务做存储和展示。
133.这里,延迟消息处理器核心功能是将未回复的患者信息通过短信发送给医生端,具体流程如图7所示。
134.s701、延迟消息处理器从延迟队列获取患者消息。
135.s702、延迟消息处理器查询数据库获取患者消息的回复状态。
136.s703、延迟消息处理器判断医生是否已回复患者消息。
137.若未回复,则执行s704:延迟消息处理器获取医生手机号。
138.若已回复,则结束流程。
139.s705、延迟消息处理器通过短信服务将患者消息发送到医生手机。
140.短信服务器(即上述实施例中所描述的短信服务模块)的核心功能有两个,一是对接电信运营商api,通过api向医生手机发送短信消息;二是向电信运营商提供回调函数,当医生回复信息时,电信运营商api可通过回调函数将医生回复的短信通知到短信服务,并通过消息系统将消息发送到im。
141.本技术实施例中,短信服务要注意的问题有:
142.1、如何保证消息触达到用户。
143.2、如何保证消息只发送一次。
144.这里,上述两个问题在某种方式上讲是冲突的,要保证消息触达到用户一方面要求对每次发送有确定的结果,另一方面在消息发送失败时要有重试策略,但是由于网络等不确定性会导致消息未发送或重复发送。故短信服务可通过利用分布式锁、分布式缓存等中间件来保证消息的触达。
145.本技术实施例中,短信服务器通过短信服务向医生发送患者消息的流程图如图8所示。
146.s801、短信服务器接收延迟消息处理器的请求a。
147.s802、短信服务器判断是否获取到会话标识sessionid的锁。
148.若没有获取到sessionid的锁,则执行s803:等待获取sessionid的锁。
149.若已获取到sessionid的锁,则执行s804。
150.s804、短信服务器根据请求的sessionid在分布式缓存中查找消息记录。
151.s805、短信服务器判断分布式缓存中是否存在请求a的消息id。
152.若存在,则执行s806:短信服务器判断分布式缓存中是否存在请求a的消息内容。
153.若不存在,则结束流程。
154.若存在,则执行s807:短信服务器通过调用api,向医生所用的手机发送短信。
155.若不存在,则结束流程。
156.s808、短信服务器判断是否已向医生成功发送短信。
157.若发送成功,则执行s809:短信服务器将短信已成功发送的事件记录到分布式缓存中。
158.若没有发送成功,则执行s810:短信服务器将重新发送短信,在重新发送后,重试次数加1。
159.s811、短信服务器判断重试次数是否达到重试最大次数。
160.若未达到重试最大次数,则重新执行s807。
161.本技术实施例中,通过短信服务接收医生回复消息的流程图如图9所示。
162.s901、电信运营商通过回调接口接收医生回复的消息,并将接收到医生回复的消息的事件发送至短信服务器。
163.s902、短信服务器根据手机号码匹配对应的会话标识sessionid。
164.s903、短信服务器判断是否获取到会话标识sessionid的锁。
165.若获取到,则执行s904:电信运营商根据会话标识sessionid获取分布式缓存中的消息记录。
166.s905、短信服务器判断分布式缓存中是否存在消息id。
167.若不存在消息id,则结束流程。
168.若存在消息id,则执行s906:短信服务器判断分布式缓存中是否存在消息内容。
169.若存在消息内容,则执行s907:短信服务器调用消息服务发送消息。
170.若不存在消息内容,则结束流程。
171.s908、短信服务器判断是否成功发送。
172.若发送成功,则执行s909:短信服务器将发送成功的消息记录到分布式缓存中。
173.若未发送成功,则执行s910:短信服务器将调用消息服务重新发送消息,在重新发送后,重试次数加1。
174.s911、短信服务器判断重试次数是否达到重试最大次数。
175.若未达到重试最大次数,则重新执行s907。
176.本技术实施例中,通过消息补充保障系统增强了互联网医院问诊单会话聊天场景,医生在弱网环境或应用运行异常下的接收和回复患者消息的能力。
177.本技术提供的信息处理方法所带来的有益效果包括:医生可以在网络环境差或应用运行异常的情况下通过短信方式来查看互联网医院问诊单聊天会话种的患者消息,并回
复患者。
178.图10为本技术实施例的提供的一种信息处理装置,如图10所示,该信息处理装置1000包括:
179.接收单元1001,用于接收第一消息;所述第一消息为第一设备发送的消息;
180.判断单元1002,用于在设定的时间段后,判断所述第一消息是否满足设定条件;其中,所述第一消息满足所述设定条件表征未向所述第一设备回复所述第一消息;
181.发送单元1003,用于如果所述第一消息满足所述设定条件,通过第一通信方式,将所述第一消息发送至第二设备;所述第一通信方式为不同于数据网络的通信方式。
182.在一些实施例中,判断单元1002还用于:
183.判断是否向所述第一设备发送第二消息;所述第二消息为通过所述数据网络接收的针对所述第一消息的回复消息;
184.若未发送所述第二消息,则所述第一消息满足所述设定条件。
185.在一些实施例中,判断单元1002还用于:
186.判断是否成功发送所述第一消息;
187.发送单元1003还用于:
188.若未成功发送,则重新发送所述第一消息,直到成功发送所述第一消息或未成功发送所述第一消息的次数达到第一预设重试次数。
189.在一些实施例中,接收单元1001还用于:
190.接收所述第二设备发送的第三消息;所述第三消息为通过所述第一通信方式接收的针对所述第一消息的回复消息;
191.发送单元1003还用于:
192.将所述第三消息通过所述数据网络发送至所述第一设备。
193.在一些实施例中,发送单元1003还用于:
194.判断是否向所述第一设备发送所述第二消息;所述第二消息为通过所述数据网络接收的针对所述第一消息的回复消息;
195.若未发送所述第二消息,则将所述第三消息通过所述数据网络发送至所述第一设备。
196.在一些实施例中,判断单元1002还用于:
197.判断缓存中是否存在所述第二消息的第一属性信息;所述第一属性信息用于表征所述第二消息的标识,其中,所述缓存中存在所述第一属性信息表征向所述第一设备发送所述第二消息。
198.在一些实施例中,判断单元1002还用于:
199.判断缓存中是否存在所述第二消息的第一标识;
200.在第一属性信息包括:第一标识和第一消息内容的情况下,在所述缓存中存在所述第一标识的情况下,判断所述缓存中是否存在所述第一消息内容;其中,所述缓存中存在所述第一消息内容表征所述缓存中存在所述第一属性信息。
201.在一些实施例中,信息处理装置还包括:处理单元,用于:
202.在接收到所述第二消息,且将所述第二消息发送至所述第一设备的情况下,生成所述第一消息的第一属性信息;
203.在所述缓存中保存所述第一属性信息。
204.在一些实施例中,判断单元1002还用于:
205.判断是否将所述第三消息成功发送至所述第一设备;
206.发送单元1003还用于:
207.若未成功发送,则重新发送所述第三消息,直到所述第三消息发送成功,或未成功发送所述第三消息的次数达到第二预设重试次数。
208.本技术实施例还提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的信息处理方法。
209.本技术实施例还提供一种存储介质,也就是计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的信息处理方法。
210.这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质和设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
211.需要说明的是,图11为本技术实施例电子设备的一种硬件实体示意图,如图11所示,所述电子设备包括:一个处理器1101、至少一个通信总线1102、至少一个外部通信接口1104和存储器1105。其中,通信总线1102配置为实现这些组件之间的连接通信。在一示例中,电子设备1100还包括:用户接口1103、其中,用户接口1103可以包括显示屏,外部通信接口1104可以包括标准的有线接口和无线接口。
212.存储器1105配置为存储由处理器1101可执行的指令和应用,还可以缓存待处理器1101以及电子设备中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。
213.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
214.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
215.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部
分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
216.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
217.另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
218.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
219.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
220.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
221.以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。