本发明涉及网络信息处理领域,具体涉及一种网络延时状态下的消息处理方法、系统、设备及介质。
背景技术:
1、目前,客户端或服务端发送请求消息一般都是队列处理,程序接收到的消息按先后顺序一个一个推入临时消息存储容器中,然后在处理线程中按消息推入顺序提取处理,消息处理顺序就是先接收到先处理。在实际应用场景中,存在许多不可预估的网络问题,如网络抖动导致排队延迟,使得需要按顺序处理的先后两条消息所处在不同的网络分组发送,先后两条消息之间存在网络延迟,导致后处理的消息会比需要先处理的消息更快到达,使得两条消息的处理顺序违反了程序设计逻辑,造成系统请求无效或错误等情况。
技术实现思路
1、为了克服现有技术的不足,本发明的目的在于提供一种网络延时状态下的消息处理方法、系统、设备及存储介质,可有效防止在多链路网络下因网络延时导致的请求无效或错误情况。
2、本发明的目的采用如下技术方案实现:
3、一种网络延时状态下的消息处理方法,包括:
4、接收客户端发送的请求消息,所述请求消息中包含消息计数值;其中,所述客户端按照所述请求消息的发送顺序对所述消息计数值进行递增/递减;
5、解析所述请求消息的所述消息计数值,对所述消息计数值进行处理顺序判断并按照所述消息计数值的递增/递减顺序依次处理已送达的所述请求消息。
6、进一步地,每次对任一所述请求消息进行处理后,还包括:
7、读取已处理的所述请求消息的所述消息计数值并将其回复至所述客户端。
8、进一步地,对所述消息计数值进行处理顺序判断的方法为:
9、将当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值进行比较,若当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值连续且递增,或连续且递减,则对当前需要的所述请求消息进行处理。
10、进一步地,对所述消息计数值进行处理顺序判断的过程中,若当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值不连续,则暂停当前所述请求消息的处理,并继续对下一送达的所述请求消息进行处理顺序判断,直至接收到连续且递增,或连续且递减的所述消息计数值的所述请求消息才对其进行消息处理。
11、进一步地,暂停处理所述请求消息过程中,记录暂停等待时间,若暂停等待时间超过预设时间,则向客户端返回错误回复。
12、进一步地,若接收到重发的所述请求消息,重新将重发的所述请求消息以及已经发送但正在排队处理的请求消息进行处理顺序判断;其中,重发的所述请求消息是由所述客户端接收到返回的错误回复时根据发送失败的所述请求消息进行发出,并对重发的所述请求消息的所述消息计数值进行更新。
13、进一步地,所述请求消息的计数极限值由所述客户端的消息并发量设定,若任一所述请求消息的所述消息计数值达到设定的计数极限值,则对所述消息计数值重新循环计数。
14、此外,还提供一种网络延时状态下的消息处理系统,执行如上述的网络延时状态下的消息处理方法,所述系统包括:
15、网络模块,用于接收客户端发送的请求消息,所述请求消息中包含消息计数值;其中,所述客户端按照所述请求消息的发送顺序对所述消息计数值进行递增/递减;
16、消息预处理模块,用于解析所述请求消息的所述消息计数值,对所述消息计数值进行处理顺序判断;
17、消息处理模块,用于根据所述消息计数值的递增/递减顺序依次处理已送达的所述请求消息。
18、此外,还提供一种电子设备,其特征在于,包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上述的网络延时状态下的消息处理方法。
19、此外,还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行如上述的网络延时状态下的消息处理方法。
20、相比现有技术,本发明的有益效果在于:
21、(1)本发明服务器对请求消息的消息计数值进行处理顺序判断,并按照消息计数值的顺序依次处理已送达的请求消息;其中,服务器清楚消息处理顺序,让即使晚到的消息也可先处理;该方法可应用于消息并发量大且有消息先后处理顺序的实际应用环境中,有效防止在多链路网络下因网络延时导致的请求无效或错误的情况;
22、(2)将已处理的请求消息的消息计数值回复至客户端中,使得客户端在短时间下发送多个相同的请求的情况下也可清楚知道服务器的消息处理进度。
1.一种网络延时状态下的消息处理方法,其特征在于,包括:
2.根据权利要求1所述的网络延时状态下的消息处理方法,其特征在于,每次对任一所述请求消息进行处理后,还包括:
3.根据权利要求1所述的网络延时状态下的消息处理方法,其特征在于,对所述消息计数值进行处理顺序判断的方法为:
4.根据权利要求3所述的网络延时状态下的消息处理方法,其特征在于,对所述消息计数值进行处理顺序判断的过程中,若当前接收到的所述请求消息的所述消息计数值与前一已经处理的所述请求消息的所述消息计数值不连续,则暂停当前所述请求消息的处理,并继续对下一送达的所述请求消息进行处理顺序判断,直至接收到连续且递增,或连续且递减的所述消息计数值的所述请求消息才对其进行消息处理。
5.根据权利要求4所述的网络延时状态下的消息处理方法,其特征在于,暂停处理所述请求消息过程中,记录暂停等待时间,若暂停等待时间超过预设时间,则向客户端返回错误回复。
6.根据权利要求5所述的网络延时状态下的消息处理方法,其特征在于,若接收到重发的所述请求消息,重新将重发的所述请求消息以及已经发送但正在排队处理的请求消息进行处理顺序判断;其中,重发的所述请求消息是由所述客户端接收到返回的错误回复时根据发送失败的所述请求消息进行发出,并对重发的所述请求消息的所述消息计数值进行更新。
7.根据权利要求1所述的网络延时状态下的消息处理方法,其特征在于,所述请求消息的计数极限值由所述客户端的消息并发量设定,若任一所述请求消息的所述消息计数值达到设定的计数极限值,则对所述消息计数值重新循环计数。
8.一种网络延时状态下的消息处理系统,其特征在于,执行如权利要求1~7任一所述的网络延时状态下的消息处理方法,所述系统包括:
9.一种电子设备,其特征在于,包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1~7任一所述的网络延时状态下的消息处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在一个或多个处理器上运行时,执行如权利要求1~7任一所述的网络延时状态下的消息处理方法。