本申请涉及计算机技术领域,具体涉及一种故障告示方法、装置及存储介质。
背景技术:
随着互联网技术的不断发展,计算机应用愈加复杂,计算机应用的受众愈加广泛。因此,当计算机应用出现故障时,影响范围很大,不能够正常的使用软件,会直接影响到计算机应用的用户评价。
由于计算机应用的复杂化以及计算机应用的广泛化,因此无法有效的对故障进行告示。
技术实现要素:
本申请实施例提供一种故障告示方法、装置及存储介质,可以有效地进行故障告示。
本申请实施例提供一种故障告示方法,包括:
接收终端发送的故障告示请求,所述故障告示请求携带目标告示标识和目标用户标识;
根据所述故障告示请求获取映射关系集合,所述映射关系包括:告示标识与故障告示数据之间的映射关系;
根据所述映射关系集合获取所述目标告示标识对应的目标故障告示数据;
从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识;
当所述目标用户标识为所述待发送用户标识时,向所述终端发送所述目标故障告示数据,以便所述终端展示所述目标故障告示数据。
本申请实施例还提供了另一种故障告示方法,包括:
接收服务器发送的业务故障信息,所述业务故障信息包括目标告示标识;
当终端未检测到本地存在所述目标告示标识对应的目标故障告示数据时,根据所述业务故障信息向服务器发送故障告示请求;
接收服务器基于所述故障告示请求返回的目标故障告示数据;
显示所述目标故障告示数据。
相应的,本申请实施例还提供一种故障告示装置,包括:
请求接收模块,用于接收终端发送的故障告示请求,所述故障告示请求携带目标告示标识和目标用户标识;
集合获取模块,用于根据所述故障告示请求获取映射关系集合,所述映射关系包括:告示标识与故障告示数据之间的映射关系;
数据获取模块,用于根据所述映射关系集合获取所述目标告示标识对应的目标故障告示数据;
确定模块,用于从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识;
数据发送模块,用于当所述目标用户标识为所述待发送用户标识时,向所述终端发送所述目标故障告示数据,以便所述终端展示所述目标故障告示数据。
相应的,本申请实施例还提供另一种故障告示装置,包括:
信息接收模块,用于接收服务器发送的业务故障信息,所述业务故障信息包括目标告示标识;
请求发送模块,用于当终端未检测到本地存在所述目标告示标识对应的目标故障告示数据时,根据所述业务故障信息向服务器发送故障告示请求;
数据接收模块,用于接收服务器基于所述故障告示请求返回的目标故障告示数据;
显示模块,用于显示所述目标故障告示数据。
相应的,本申请实施例还提供一种存储介质,所述存储介质存储有指令,所述指令被处理器执行时实现本申请实施例任一提供的故障告示方法的步骤。
本申请实施例接收终端发送的故障告示请求,故障告示请求携带目标告示标识和目标用户标识,根据故障告示请求获取映射关系集合,映射关系包括:告示标识与故障告示数据之间的映射关系,根据映射关系集合获取目标告示标识对应的目标故障告示数据,从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识,当目标用户标识为待发送用户标识时,向终端发送目标故障告示数据,以便终端展示目标故障告示数据。该方案可以有效地进行故障告示。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的故障告示系统的场景示意图;
图2是本申请实施例提供的故障告示方法的第一流程示意图;
图3是本申请实施例提供的故障告示方法的第二流程示意图;
图4是本申请实施例提供的故障告示方法的第三流程示意图;
图5是本申请实施例提供的故障告示方法的第一时序图;
图6是本申请实施例提供的故障告示方法的第二时序图;
图7是本申请实施例提供的手机端登陆业务故障告示的显示界面;
图8是本申请实施例提供的手机端消息业务故障告示的显示界面;
图9是本申请实施例提供的电脑端登陆业务故障告示的显示界面;
图10是本申请实施例提供的电脑端消息业务故障告示的显示界面;
图11是本申请实施例提供的故障告示方法的架构图;
图12是本申请实施例提供的故障告示方法的参数配置示意图;
图13是本申请实施例提供的故障告示方法的第一种结构示意图;
图14是本申请实施例提供的故障告示方法的第二种结构示意图;
图15是本申请实施例提供的网络设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种故障告示方法、装置及存储介质。
本申请实施例提供了一种故障告示系统,该系统可以包括本申请实施例所提供的任一种适用于服务器的第一故障告示装置、以及任一种适用于终端的第二故障告示装置。
其中,第一故障告示装置可以集成在服务器中,第二故障告示装置可以集成在终端中,该终端可以为手机、平板电脑、可穿戴设备等等。
例如,参见图1,提供了一种故障告示系统,该故障告示系统包括:服务器和终端,终端和服务器之间通过网络连接。其中,网络中包括路由器、网关等等网络实体,图中并未示意出。
当需要进行故障告示时,终端可以接收服务器发送的业务故障信息,当终端未检测到本地存在目标告示标识对应的目标故障告示数据时,根据业务故障信息向服务器发送故障告示请求,服务器接收终端发送的故障告示请求,服务器根据故障告示请求获取映射关系集合,服务器根据映射关系集合获取目标告示标识对应的目标故障告示数据,服务器从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识,当目标用户标识为待发送用户标识时,服务器向终端发送目标故障告示数据,以便终端展示目标故障告示数据,终端接收服务器基于故障告示请求返回的目标故障告示数据,终端显示目标故障告示数据。
本实施例将从第一故障告示装置的角度进行描述,该第一故障告示装置具体可以集成在一个或多个服务器中,比如,可以集成在业务服务器和/或故障告示服务器中。
如图2所示,提供了一种故障告示方法,该方法可以由一台或者多台服务器执行,具体流程可以如下:
201、接收终端发送的故障告示请求。
其中,该故障告示请求可以携带目标告示标识和目标用户标识。
其中,故障告示请求可以为当业务故障发生时,终端对服务器提出进行故障告示而发送的请求。
其中,告示标识可以为一种故障告示的标识信息,也可以称为noticeid,该告示标识可以对故障告示数据进行标识,告示标识与故障告示数据之间存在映射关系。当每次故障发生时,该告示标识将会递增。比如,当noticeid大于0时,可以认为发生了业务故障。
其中,故障告示数据可以为指示终端进行故障告示所需的数据,终端可以根据该故障告示数据对用户进行发生业务故障的提示。比如,故障告示数据中可以包括告示标识、故障类型、故障告示内容、告示发送比例,等等。
其中,用户标识为可以对发送故障告示请求终端用户身份进行识别的标识。
在实际应用中,服务器可以接收来自终端的故障告示请求,比如,终端可以将带有noticeid的故障告示请求发送至服务器。
在一实施例中,该故障告示方法可以由一台或者多台服务器执行,比如,该故障告示方法还可以包括故障告示服务器和业务服务器。
其中,故障告示服务器可以为主要实现故障告示发送功能逻辑的服务器,故障告示服务器中部署有单独的接入层和逻辑层。
其中,业务服务器可以为实现业务相应功能逻辑的服务器。
对于用户量大的复杂应用,一旦出现业务故障,影响到的范围很大。由于业务故障的出现无法预知,任何计算机应用都有可能出现业务故障,因此,需要采取一些预防手段,将故障的影响范围降低。当出现大面积故障时,用户会因为不能正常使用计算机应用而产生恐慌,因此,如果能在发生故障的时候,对用户进行当前发生了业务故障的提示,告知用户当前发生了故障,可以有效缓解用户的恐慌情绪,降低故障带来的负面影响。
另外,由于发生故障时,业务服务器一般处于高负载的状态,而采用常规方法通过业务服务器进行故障告示的拉取,可能进一步加重故障。因此,可以设置故障告示服务器,通过独立的通道进行故障告示的拉取,走单独的接入层和逻辑层后台处理,从而避免由于拉取告示数据,引起二次故障。
在实际应用中,服务器可以接收来自终端的故障告示请求,比如,终端可以通过独立的https短连接,将故障告示请求发送到故障告示服务器的数据接入层,故障告示请求中包括noticeid,故障告示服务器的ip地址与业务服务器的ip地址是完全隔离的。
在一实施例中,当用户进行业务操作出现业务故障时,业务服务器的业务逻辑层可以将业务处理失败的消息发送至业务接入层,业务接入层可以根据该业务处理失败的消息进行是否返回业务故障信息的判断。
202、根据故障告示请求获取映射关系集合。
其中,该映射关系可以包括:告示标识与故障告示数据之间的映射关系。
在实际应用中,服务器可以根据终端发送的故障告示请求,获取告示标识与故障告示数据之间的映射关系。
在一实施例中,故障告示服务器可以根据终端发送的故障告示请求,获取配置好的告示标识与故障告示数据之间的映射关系。
在一实施例中,还可以根据业务故障的影响程度进行告示标识与故障告示数据之间映射关系的配置,从而有效地进行故障的告示。具体地,该故障告示方法还可以包括:
获取业务故障的用户反馈参数;
当所述用户反馈参数满足告示配置触发条件时,配置业务故障对应的当前告示标识和当前故障告示数据;
根据所述当前告示标识和所述当前故障告示数据,建立告示标识与故障告示数据之间的映射关系,得到映射关系集合。
其中,用户反馈参数可以为表征业务故障发生时,故障波及的范围、严重性以及影响程度等等的参数。比如,该用户反馈参数可以包括被影响用户的比例、故障恢复的时长、固定时长内用户的投诉量等等。
其中,告示配置触发条件可以为判断业务故障的影响程度是否达到需要进行故障告示数据配置标准的条件。
在实际应用中,服务器可以获取业务故障的用户反馈参数,当用户反馈参数满足告示配置触发条件时,配置业务故障对应的当前告示标识和当前故障告示数据,并根据当前告示标识和当前故障告示数据,建立告示标识与故障告示数据之间的映射关系,得到映射关系集合。
在一实施例中,比如,当用户反馈参数包括被影响用户的比例参数、故障恢复的时长参数、每10分钟内用户的投诉量参数;告示配置触发条件为被影响用户的比例超过40%、故障恢复的时长大于30分钟、以及每10分钟内用户的投诉量超过200个时,服务器对告示标识和故障告示数据进行配置。当被影响用户的比例超过40%、故障恢复的时长大于30分钟、以及每10分钟内用户的投诉量超过200个时,故障告示服务器可以配置当前业务故障对应的当前告示标识和当前故障告示数据,并根据当前告示标识和当前故障告示数据,建立告示标识与故障告示数据之间的映射关系,得到映射关系集合。
在一实施例中,该用户反馈参数和告示配置触发条件还可以根据实际业务情况进行调整。比如,可以对用户反馈参数的参数种类进行增加或者减少,还可以对告示配置触发条件中用户反馈参数的数值标准进行调整。
在一实施例中,故障告示服务器配置了告示标识与故障告示数据之间的映射关系后,还可以将故障告示数据对应的告示标识同步给业务服务器。
在一实施例中,为了使得发生业务故障时,减少发生故障告示数据拉取混淆的情况,可以使得每次发生业务故障时,业务故障对应的告示标识不相同,从而提升故障告示的准确性。具体地,步骤“配置业务故障对应的当前告示标识和当前故障告示数据”,可以包括:
获取之前使用的历史告示标识;
基于标识变化规则对所述历史告示标识进行变化,得到当前告示标识;
配置业务故障对应的当前故障告示数据。
在实际应用中,服务器可以获取之前使用过的历史告示标识,并基于标识变化规则对历史告示标识进行变化,得到当前告示标识,配置业务故障对应的当前故障告示数据。
在一实施例中,比如,故障告示服务器可以获取上一次发生故障时使用过的历史noticeid,并对该历史noticeid中的标识数据进行增加,使得每次发生故障,noticeid中的标识数据都进行增加,得到当前noticeid,并配置当前业务故障对应的当前故障告示数据。
在一实施例中,该标识变化规则可以根据实际情况进行调整,比如,标识变化规则可以是依照变化规则进行标识数据的增加或者减少等等。
203、根据映射关系集合获取目标告示标识对应的目标故障告示数据。
在实际应用中,服务器可以获取故障告示请求中目标告示标识对应的目标故障告示数据。
在一实施例中,故障告示服务器可以根据映射关系集合获取故障告示请求中noticeid对应的目标故障告示数据。
204、从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识。
在实际应用中,服务器可以从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识。
在实际应用中,为了节约资源,可以不对每个出现故障的终端都进行故障告示。比如,故障告示服务器可以从所有当前发出故障告示请求的终端中,确定出需要进行故障告示数据发送的终端。
在一实施例中,还可以根据告示发送比例进行待发送用户标识的确定。具体地,步骤“从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识”,可以包括:
基于告示发送比例确定需要发送告示数据用户标识的目标数量;
基于所述目标数量从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识。
其中,告示发送比例为按照比例对发生故障的用户进行故障告示的比例。告示发送比例可以包括在故障告示数据中。
在实际应用中,服务器可以根据故障的严重程度,设置告示发送比例,比如可以将告示发送比例配置为50%。
在一实施例中,该告示发送比例还可以根据故障告示服务器的负载情况进行设置,比如,当检测到负载过大时,还可以将告示发送比例相对调小。
为了节约资源,可以不对每个出现故障的终端都进行故障发生的告示。比如,当有100个终端发出故障告示请求时,服务器可以根据告示发送比例50%,确定需要进行故障告示数据发送的终端数量为50,并随机将发出故障告示请求终端中的50个终端对应的用户标识确定为待发送用户标识。然后可以进行故障的告示,收到故障告示的用户会知道当前系统出现了业务故障,并且会对当前系统发生了故障的消息进行传播,其余没收到故障告示的用户可以根据多种消息传播途径,比如互联网,得知当前系统出现了故障,从而既节约了资源,又可以达到故障告示的效果。
在一实施例中,为了提高故障告示的有效性,还可以根据用户请求次数进行待发送用户标识的确定。具体地,步骤“从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识”,可以包括:
获取当前请求用户标识对应的请求次数;
基于所述请求次数,从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识。
其中,请求次数可以为终端发送故障告示请求的次数。
在实际应用中,服务器可以获取当前请求用户标识对应的请求次数,之后基于请求次数,从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识。
在一实施例中,比如,故障告示服务器可以获取当前发出故障告示请求终端的用户标识对应的请求次数,之后,可以将请求次数达到一定数量终端对应的用户标识确定为发送告示数据的待发送用户标识。因此可以使得发送了多次故障告示请求的终端能够显示故障告示,从而提高故障告示的有效性。
205、当目标用户标识为待发送用户标识时,向终端发送目标故障告示数据,以便终端展示目标故障告示数据。
在实际应用中,当目标用户标识为待发送用户标识时,服务器可以向目标用户标识对应的终端发送目标故障告示数据,以便终端可以展示该目标故障告示数据。
在一实施例中,当目标用户标识为待发送用户标识时,故障告示服务器可以根据目标用户标识对应终端发送的故障告示请求,从高速缓存中将noticeid对应的目标故障告示数据发送给终端。
在一实施例中,由于发生的故障可以包括多种故障类型,针对发生的故障类型,进行相应类型的故障告示,可以提高故障告示的有效性。具体地,该故障告示方法还可以包括:
当检测到发生业务故障时,确定所述业务故障的故障类型;
将所述故障类型与告示标识对应的故障类型进行匹配;
根据匹配结果从所述告示标识中确定相应的目标告示标识;
向所述终端返回业务故障信息,所述业务故障信息包括目标告示标识。
其中,故障告示数据中可以包括故障告示内容和故障类型。
其中,故障类型可以表征业务故障的类型。比如,故障类型可以包括登陆业务故障、消息业务故障、联系人信息拉取业务故障等等。
其中,故障告示内容可以包括进行故障告示显示的内容数据。比如,故障告示内容包括故障发生时,终端进行显示的内容或者格式等等。
其中,业务故障信息可以为服务器返回给终端的信息,业务故障信息中可以包括目标告示标识、错误码等等。
在实际应用中,当服务器检测到发生业务故障时,可以首先确定发生故障的故障类型,之后将故障类型与告示标识对应故障告示数据中的故障类型进行匹配,并根据匹配结果从告示标识中确定出目标告示标识,然后向终端返回包括目标告示标识的业务故障信息。
在一实施例中,当业务服务器检测到发生业务故障时,比如消息业务处理失败或者登陆失败等故障时,可以确定发生故障的故障类型,之后根据当前缓存的告示标识,进行故障类型和告示标识的匹配,并确定出目标告示标识,然后进行业务故障信息的发送。
在一实施例中,比如,当服务器检测到发生业务故障时,可以首先确定发生故障的故障类型,之后将故障类型与告示标识对应故障告示数据中的故障类型进行匹配,如果告示标识中不包括故障类型对应的目标告示标识,不进行业务故障信息的返回。
比如,当用户进行发送消息业务,而告示标识中仅包括登陆业务故障对应的目标告示标识时,那么即使用户的消息发送失败,也不会进行登陆业务故障的提示。
在一实施例中,还可以根据发生故障的情况,与当前设置的故障类型进行匹配,然后进行相应的故障告示,比如,当故障类型仅包括消息业务故障和登陆业务故障时,那么拉取联系人信息失败时,可以对该拉取联系人信息失败的故障与已经设置的故障类型进行匹配,比如,可以认为拉取联系人信息失败属于消息业务故障,之后对终端进行消息业务故障对应的故障告示。
在一实施例中,当故障恢复后,业务服务器可以停止对业务故障信息的返回。比如,当故障恢复后,业务服务器可以停止对终端返回包括noticeid的业务故障信息,从而使得下次用户再打开应用的时候,不会触发拉取故障告示信息,也不会进行故障的告示。通过这样的方式,可以使得只要业务服务器没有noticeid返回,终端就不会运行故障告示的相关逻辑,从而将终端的正常业务处理逻辑和故障告示逻辑完全隔离开,避免了交叉影响。
在一实施例中,为了保证该故障告示方法的顺利实施,还可以对该故障告示方法进行故障告示的演习。
在一实施例中,比如,如图12所示,当进行故障告示的演习时,可以将noticeid设置为1,故障告示开关设置为0(0表示关闭,1表示开启)。先对一部分故障进行告示演习,当检测到故障告示方法达到推广标准时,可以将该方法进行推广。
在一实施例中,比如,如图12所示,还可以进行故障类型的设置,利用disastertype表示故障类型,发生消息业务故障时,可以将disastertype设置为2;发生登陆业务故障时,可以将disastertype设置为1;同时发生消息业务故障和登陆业务故障时,可以将disastertype设置为0。
在一实施例中,比如,如图12所示,还可以将httpcode(http状态码)大于400的情况认为是出现了故障。
在一实施例中,比如,如图12所示,当故障类型为登陆故障时,当以下cgi(通用网关接口,commongatewayinterface)发生错误时,认为是出现了故障。cgilistlogin=93000,93001,93002,93003,93004,93005。
在一实施例中,比如,如图12所示,当ret(返回指令)返回以下数值时,为没有发生故障的情况,不进行故障的告示。errcodewhite=0,-10001,-10002,-10003。
在一实施例中,比如,当演习的时候,可以分为两种情况进行演习。一种情况是未设置告示发送比例进行的演习,这种情况下,可以对所有产生故障的演习对象都进行故障的告示。另一种情况是设置了告示发送比例进行的演习,这种情况下,可以随机依据告示发送比例对演习对象进行故障的告示。
由上可知,本申请实施例可以接收终端发送的故障告示请求,故障告示请求携带目标告示标识和目标用户标识,根据故障告示请求获取映射关系集合,映射关系包括:告示标识与故障告示数据之间的映射关系,根据映射关系集合获取目标告示标识对应的目标故障告示数据,从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识,当目标用户标识为待发送用户标识时,向终端发送目标故障告示数据,以便终端展示目标故障告示数据。该方案通过服务器中单独的接入层和逻辑层进行业务故障的告示,避免了由于对业务故障进行告示,又引起二次故障,从而有效地进行故障告示。
在一实施例,将从第二故障告示装置角度进行描述,该第二故障告示装置具体可以集成在终端中。
如图3所示,提供了一种故障告示方法,该方法可以由终端执行,具体流程可以如下:
301、接收服务器发送的业务故障信息。
其中,业务故障信息包括目标告示标识。
在实际应用中,比如,终端可以接收来自服务器的业务故障信息,该业务故障信息可以包括目标告示标识、错误码等等。然后终端可以基于该业务故障信息进行故障告示数据的获取。
302、当终端未检测到本地存在目标告示标识对应的目标故障告示数据时,根据业务故障信息向服务器发送故障告示请求。
在实际应用中,比如,当终端接收到业务故障信息后,会根据目标告示标识,对本地故障告示数据进行检测,当终端未检测到本地存在目标告示标识对应的目标故障告示数据时,会向服务器发送故障告示请求,以请求获取目标故障告示数据。当终端检测到本地存在目标告示标识对应的目标故障告示数据时,可以将目标故障告示数据进行显示。
比如,当终端接收到业务故障信息时,可以检查本地是否已经拉取并缓存了noticeid对应的故障告示数据,如果本地存在故障告示数据,则无需进行故障告示数据的获取步骤;如果本地不存在故障告示数据,则终端可以通过独立的https短连接,将故障告示请求发送到故障告示服务器的数据接入层,并接收来自故障告示服务器故障告示数据。
303、接收服务器基于故障告示请求返回的目标故障告示数据。
在实际应用中,比如,当终端未检测到本地存在目标告示标识对应的目标故障告示数据时,会向服务器发送故障告示请求,服务器会根据该故障告示请求,将目标故障告示数据返回给终端,以便终端进行故障告示数据的展示。
304、显示目标故障告示数据。
在实际应用中,终端会将目标故障数据进行展示。比如,如图7、图8、图9和图10所示,当前终端所处的状态可以包括在手机端登陆计算机应用,或者在pc端登陆计算机应用等等。终端会根据当前终端所处的状态进行目标故障告示数据的展示,终端显示故障告示的内容可以为“部分功能暂时无法使用,xxx团队正在处理,请稍后再试。”用户还可以通过点击下方的“我知道了”,进行故障告示成功发送的反馈。
在一实施例中,终端还可以通过不同的语言进行故障的告示。比如,简体字、繁体字、英语等等。
在一实施例中,比如,终端进行目标故障告示数据的显示后,可以在计算机应用存活的生命周期内(计算机应用不重新启动)对故障告示数据进行缓存,以避免重复的拉取故障告示数据,从而节约资源。
在一实施例中,由于故障随时有可能恢复,因此,可以使得终端只在存活的生命周期内(计算机应用不重新启动)进行故障告示数据的缓存,当系统重新启动时,终端还可以将保存的故障告示数据进行删除。
由上可知,本申请实施例可以接收服务器发送的业务故障信息,业务故障信息包括目标告示标识,当终端未检测到本地存在目标告示标识对应的目标故障告示数据时,根据业务故障信息向服务器发送故障告示请求,接收服务器基于故障告示请求返回的目标故障告示数据,显示目标故障告示数据。该方案通过服务器中单独的接入层和逻辑层进行业务故障的告示,避免了由于对业务故障进行告示,又引起二次故障,从而有效地进行故障告示。
根据上述实施例所描述的方法,以下将举例作进一步详细说明。具体地,以第一故障告示装置集成在多个服务器、第二故障告示装置集成在终端为例。
如图11所示,提供了一种故障告示系统,该故障告示系统包括:业务服务器、故障告示服务器和终端。服务器和终端之间通过网络连接。其中,网络中包括路由器、网关等等网络实体,图中并未示意出。
请参阅图4,该故障告示方法的具体流程可以如下:
401、终端接收业务服务器发送的业务故障信息。
当用户进行业务操作出现业务故障时,业务服务器的业务逻辑层可以将业务处理失败的消息发送至业务接入层,业务接入层可以根据该业务处理失败的消息进行是否返回业务故障信息的判断。
比如,如图5和图6所示,终端可以接收来自业务服务器的业务故障信息,该业务故障信息可以包括目标告示标识、错误码等等。然后终端可以基于该业务故障信息进行故障告示数据的获取。
402、当终端未检测到本地存在目标告示标识对应的目标故障告示数据时,根据业务故障信息向故障告示服务器发送故障告示请求。
比如,当终端接收到业务故障信息时,可以检查本地是否已经拉取并缓存了noticeid对应的故障告示数据,如果本地存在故障告示数据,则无需进行故障告示数据的获取步骤;如果本地不存在故障告示数据,则终端可以通过独立的https短连接,将故障告示请求发送到故障告示服务器的数据接入层,并接收来自故障告示服务器故障告示数据。
403、故障告示服务器接收终端发送的故障告示请求。
比如,终端可以通过独立的https短连接,将故障告示请求发送到故障告示服务器的数据接入层,故障告示请求中包括noticeid,故障告示服务器的ip地址与业务服务器的ip地址是完全隔离的。
404、故障告示服务器根据故障告示请求获取映射关系集合。
比如,当被影响用户的比例超过40%、故障恢复的时长大于30分钟、以及每10分钟内用户的投诉量超过200个时,故障告示服务器可以配置当前业务故障对应的当前告示标识和当前故障告示数据,并根据当前告示标识和当前故障告示数据,建立告示标识与故障告示数据之间的映射关系,得到映射关系集合。
在一实施例中,该用户反馈参数和告示配置触发条件还可以根据实际业务情况进行调整。比如,可以对用户反馈参数的参数种类进行增加或者减少,还可以对告示配置触发条件中用户反馈参数的数值标准进行调整。
在一实施例中,故障告示服务器配置了告示标识与故障告示数据之间的映射关系后,还可以将故障告示数据对应的告示标识同步给业务服务器。
在一实施例中,比如,故障告示服务器可以获取上一次发生故障时使用过的历史noticeid,并对该历史noticeid中的标识数据进行增加,使得每次发生故障,noticeid中的标识数据都进行增加,得到当前noticeid,并配置当前业务故障对应的当前故障告示数据。
在一实施例中,该标识变化规则可以根据实际情况进行调整,比如,标识变化规则可以是依照变化规则进行标识数据的增加或者减少等等。
405、故障告示服务器根据映射关系集合获取目标告示标识对应的目标故障告示数据。
比如,故障告示服务器可以根据映射关系集合获取故障告示请求中noticeid对应的目标故障告示数据。
406、故障告示服务器从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识。
为了节约资源,可以不对每个出现故障的终端都进行故障发生的告示。比如,当有100个终端发出故障告示请求时,故障告示服务器可以根据告示发送比例50%,确定需要进行故障告示数据发送的终端数量为50,并随机将发出故障告示请求终端中的50个终端对应的用户标识确定为待发送用户标识。然后可以进行故障的告示,收到故障告示的用户会知道当前系统出现了业务故障,并且会对当前系统发生了故障的消息进行传播,其余没收到故障告示的用户可以根据多种消息传播途径,比如互联网,得知当前系统出现了故障,从而既节约了资源,又可以达到故障告示的效果。
在一实施例中,该告示发送比例还可以根据故障告示服务器的负载情况进行设置,比如,当检测到负载过大时,还可以将告示发送比例相对调小。
比如,故障告示服务器可以获取当前发出故障告示请求终端的用户标识对应的请求次数,之后,可以将请求次数达到一定数量终端对应的用户标识确定为发送告示数据的待发送用户标识。因此可以使得发送了多次故障告示请求的终端能够显示故障告示,从而提高故障告示的有效性。
407、当目标用户标识为待发送用户标识时,故障告示服务器向终端发送目标故障告示数据,以便终端展示目标故障告示数据。
比如,当目标用户标识为待发送用户标识时,故障告示服务器可以根据目标用户标识对应终端发送的故障告示请求,从高速缓存中将noticeid对应的目标故障告示数据发送给终端。
当服务器检测到发生业务故障时,可以首先确定发生故障的故障类型,之后将故障类型与告示标识对应故障告示数据中的故障类型进行匹配,并确定出目标告示标识,然后进行业务故障信息的发送。如果告示标识中不包括故障类型对应的目标告示标识,不进行业务故障信息的返回。
比如,当用户进行发送消息业务,而告示标识中仅包括登陆业务故障对应的目标告示标识时,那么即使用户的消息发送失败,也不会进行登陆业务故障的提示。
在一实施例中,还可以根据发生故障的情况,与当前设置的故障类型进行匹配,然后进行相应的故障告示,比如,当故障类型仅包括消息业务故障和登陆业务故障时,那么拉取联系人信息失败时,可以对该拉取联系人信息失败的故障与已经设置的故障类型进行匹配,比如,可以认为拉取联系人信息失败属于消息业务故障,之后对终端进行消息业务故障对应的故障告示。
在一实施例中,当故障恢复后,业务服务器可以停止对业务故障信息的返回。比如,当故障恢复后,业务服务器可以停止对终端返回包括noticeid的业务故障信息,从而使得下次用户再打开应用的时候,不会触发拉取故障告示信息,也不会进行故障的告示。通过这样的方式,可以使得只要业务服务器没有noticeid返回,终端就不会运行故障告示的相关逻辑,从而将终端的正常业务处理逻辑和故障告示逻辑完全隔离开,避免了交叉影响。
408、终端接收故障告示服务器基于故障告示请求返回的目标故障告示数据。
比如,当终端未检测到本地存在目标告示标识对应的目标故障告示数据时,会向服务器发送故障告示请求,服务器会根据该故障告示请求,将目标故障告示数据返回给终端,以便终端进行故障告示数据的展示。
409、终端显示目标故障告示数据。
比如,当前终端所处的状态可以包括在手机端登陆计算机应用,或者在pc端登陆计算机应用等等。终端会根据当前终端所处的状态进行目标故障告示数据的展示,终端显示故障告示的内容可以为“部分功能暂时无法使用,xxx团队正在处理,请稍后再试。”用户还可以通过点击下方的“我知道了”,进行故障告示成功发送的反馈。
在一实施例中,终端还可以通过不同的语言,进行故障的告示。比如,简体字、繁体字、英语等等。
在一实施例中,比如,终端进行目标故障告示数据的显示后,可以在计算机应用存活的生命周期内(计算机应用不重新启动)对故障告示数据进行缓存,以避免重复的拉取故障告示数据,从而节约资源。
在一实施例中,由于故障随时有可能恢复,因此,可以使得终端只在存活的生命周期内(计算机应用不重新启动)进行故障告示数据的缓存,当系统重新启动时,终端还可以将保存的故障告示数据进行删除。
由上可知,本申请实施例可以通过终端接收业务服务器发送的业务故障信息,当终端未检测到本地存在目标告示标识对应的目标故障告示数据时,根据业务故障信息向故障告示服务器发送故障告示请求,故障告示服务器接收终端发送的故障告示请求,故障告示服务器根据故障告示请求获取映射关系集合,故障告示服务器根据映射关系集合获取目标告示标识对应的目标故障告示数据,故障告示服务器从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识,当目标用户标识为待发送用户标识时,故障告示服务器向终端发送目标故障告示数据,以便终端展示目标故障告示数据,终端接收故障告示服务器基于故障告示请求返回的目标故障告示数据,终端显示目标故障告示数据。该方案通过服务器中单独的接入层和逻辑层进行业务故障的告示,避免了由于对业务故障进行告示,又引起二次故障,从而有效地进行故障告示。
为了更好地实施以上方法,本申请实施例还提供一种故障告示装置,该故障告示装置可以适用于一台或多台服务器,如图13所示,该故障告示装置可以包括:请求接收模块131、集合获取模块132、数据获取模块133、确定模块134和数据发送模块135,如下:
请求接收模块131,用于接收终端发送的故障告示请求,所述故障告示请求携带目标告示标识和目标用户标识;
集合获取模块132,用于根据所述故障告示请求获取映射关系集合,所述映射关系包括:告示标识与故障告示数据之间的映射关系;
数据获取模块133,用于根据所述映射关系集合获取所述目标告示标识对应的目标故障告示数据;
确定模块134,用于从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识;
数据发送模块135,用于当所述目标用户标识为所述待发送用户标识时,向所述终端发送所述目标故障告示数据,以便所述终端展示所述目标故障告示数据。
在一实施例中,所述确定模块134,可以具体用于:
基于告示发送比例确定需要发送告示数据用户标识的目标数量;
基于所述目标数量从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识。
在一实施例中,所述确定模块134,还可以具体用于:
获取当前请求用户标识对应的请求次数;
基于所述请求次数,从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识。
以上各单元的执行的步骤可以参考上述方法实施例的描述。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
该故障告示装置具体可以集成在服务器中。
由上可知,本申请实施例可以通过请求接收模块131接收终端发送的故障告示请求,故障告示请求携带目标告示标识和目标用户标识,集合获取模块132根据故障告示请求获取映射关系集合,映射关系包括:告示标识与故障告示数据之间的映射关系,数据获取模块133根据映射关系集合获取目标告示标识对应的目标故障告示数据,确定模块134从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识,数据发送模块135当目标用户标识为待发送用户标识时,向终端发送目标故障告示数据,以便终端展示目标故障告示数据。该方案通过服务器中单独的接入层和逻辑层进行业务故障的告示,避免了由于对业务故障进行告示,又引起二次故障,从而有效地进行故障告示。
为了更好地实施以上方法,本申请实施例还提供一种故障告示装置,该故障告示装置可以适用于终端,如图14所示,该故障告示装置可以包括:信息接收模块141、请求发送模块142、数据接收模块143和显示模块144,如下:
信息接收模块141,用于接收服务器发送的业务故障信息,所述业务故障信息包括目标告示标识;
请求发送模块142,用于当终端未检测到本地存在所述目标告示标识对应的目标故障告示数据时,根据所述业务故障信息向服务器发送故障告示请求;
数据接收模块143,用于接收服务器基于所述故障告示请求返回的目标故障告示数据;
显示模块144,用于显示所述目标故障告示数据。
以上各单元的执行的步骤可以参考上述方法实施例的描述。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
该故障告示装置具体可以集成终端中。
由上可知,本申请实施例可以通过信息接收模块141接收服务器发送的业务故障信息,业务故障信息包括目标告示标识,当终端未检测到本地存在目标告示标识对应的目标故障告示数据时,请求发送模块142根据业务故障信息向服务器发送故障告示请求,数据接收模块143接收服务器基于故障告示请求返回的目标故障告示数据,显示模块144显示目标故障告示数据。该方案通过服务器中单独的接入层和逻辑层进行业务故障的告示,避免了由于对业务故障进行告示,又引起二次故障,从而有效地进行故障告示。
本申请实施例还提供一种网络设备,该网络设备可以为服务器或终端等设备,其集成了本申请实施例所提供的任一种故障告示装置。如图15所示,图15是本申请实施例提供的网络设备的结构示意图,具体来讲:
该网络设备可以包括一个或者一个以上处理核心的处理器151、一个或一个以上计算机可读存储介质的存储器152、电源153和输入单元154等部件。本领域技术人员可以理解,图15中示出的网络设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器151是该网络设备的控制中心,利用各种接口和线路连接整个网络设备的各个部分,通过运行或执行存储在存储器152内的软件程序和/或模块,以及调用存储在存储器152内的数据,执行网络设备的各种功能和处理数据,从而对网络设备进行整体监控。可选的,处理器151可包括一个或多个处理核心;优选的,处理器151可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器151中。
存储器152可用于存储软件程序以及模块,处理器151通过运行存储在存储器152的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器152可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络设备的使用所创建的数据等。此外,存储器152可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器152还可以包括存储器控制器,以提供处理器151对存储器152的访问。
网络设备还包括给各个部件供电的电源153,优选的,电源153可以通过电源管理系统与处理器151逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源153还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该网络设备还可包括输入单元154,该输入单元154可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,网络设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,网络设备中的处理器151会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器152中,并由处理器151来运行存储在存储器152中的应用程序,从而实现各种功能,如下:
接收终端发送的故障告示请求,故障告示请求携带目标告示标识和目标用户标识,根据故障告示请求获取映射关系集合,映射关系包括:告示标识与故障告示数据之间的映射关系,根据映射关系集合获取目标告示标识对应的目标故障告示数据,从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识,当目标用户标识为待发送用户标识时,向终端发送目标故障告示数据,以便终端展示目标故障告示数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本申请实施例可以接收终端发送的故障告示请求,故障告示请求携带目标告示标识和目标用户标识,根据故障告示请求获取映射关系集合,映射关系包括:告示标识与故障告示数据之间的映射关系,根据映射关系集合获取目标告示标识对应的目标故障告示数据,从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识,当目标用户标识为待发送用户标识时,向终端发送目标故障告示数据,以便终端展示目标故障告示数据。该方案通过服务器中单独的接入层和逻辑层进行业务故障的告示,避免了由于对业务故障进行告示,又引起二次故障,从而有效地进行故障告示。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种故障告示方法中的步骤。例如,该指令可以执行如下步骤:
接收终端发送的故障告示请求,故障告示请求携带目标告示标识和目标用户标识,根据故障告示请求获取映射关系集合,映射关系包括:告示标识与故障告示数据之间的映射关系,根据映射关系集合获取目标告示标识对应的目标故障告示数据,从当前请求用户标识中确定需要发送故障告示数据的待发送用户标识,当目标用户标识为待发送用户标识时,向终端发送目标故障告示数据,以便终端展示目标故障告示数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种故障告示方法中的步骤,因此,可以实现本申请实施例所提供的任一种故障告示方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种故障告示方法、装置以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。