本发明涉及计算机,具体而言,涉及一种数据处理方法、装置、非易失性存储介质及电子设备。
背景技术:
1、在权益平台进行券码类权益订单发放时,需要同时给不同请求系统发放大量的权益订单,此时,需要在高并发的场景下保证每笔权益订单状态正确流转,并保证较高的性能和较快的响应时间,在高并发的场景下,对服务器的请求压力比较大。相关技术采取数据库锁或者分布式锁方式直接进行状态流转,即只有一个线程可以持有锁资源,其他线程需要等待锁的释放才能继续执行。在这种情况下,当大量请求同时访问数据库或分布式锁时,会导致锁的竞争,也就是多个并发请求同时竞争同一个锁资源,会导致性能下降和系统响应时间延长,出现部分请求被阻塞或丢弃的情况,导致状态更新不及时,用户无法及时获取最新状态。
2、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本发明实施例提供了一种数据处理方法、装置、非易失性存储介质及电子设备,以至少解决现有技术中数据库处理订单状态过程中因数据量大导致请求丢失、状态更新不及时的技术问题。
2、根据本发明实施例的一个方面,提供了一种数据处理方法,包括:接收分别表征请求更新数据库中对应的订单状态的多条待处理的请求,其中,多条待处理的请求对应订单的状态发生变化;按照预先确定的状态处理模块队列,依次采用状态处理模块队列中的多个状态处理模块,分别对多条待处理的请求进行处理,得到处理后的订单状态,其中,多个状态处理模块分别对不同的状态变化的订单对应的请求进行处理;根据处理后的订单状态,对数据库进行更新。
3、可选地,按照预先确定的状态处理模块队列,依次采用状态处理模块队列中的多个状态处理模块,分别对多条待处理的请求进行处理,得到处理后的订单状态,包括:确定状态处理模块队列中多个状态处理模块的顺序;根据多个状态处理模块的顺序,将多条待处理的请求输入首个状态处理模块,由首个状态处理模块对状态产生第一变化的订单对应的第一请求进行处理,得到第一请求对应的订单处理后的订单状态;根据多个状态处理模块的顺序,将多条待处理请求中未被处理的请求输入下一个状态处理模块,直到多个状态处理模块均对多条待处理请求进行处理,得到处理后的订单状态。
4、可选地,根据处理后的订单状态,对数据库进行更新,包括:按照多个状态处理模块的顺序,依次根据多个状态处理模块得到的处理后的订单状态,对数据库进行更新。
5、可选地,按照多个状态处理模块的顺序,依次根据多个状态处理模块得到的处理后的订单状态,对数据库进行更新,包括:根据多个状态处理模块的顺序,根据首个状态处理模块输出的第一请求对应的订单处理后的订单状态,对数据库进行更新;根据多个状态处理模块的顺序,根据下一个状态处理模块输出的处理后的订单状态对数据库进行更新,直到根据末尾状态处理模块输出的处理后的订单状态对数据库进行更新,确定对数据库更新完成。
6、可选地,状态处理模块队列采用如下方式生成:获取预定的订单状态变化流程,订单状态变化流程包括有序的多个订单状态;根据订单状态变化流程,确定多个订单状态中相邻的订单状态;生成与相邻的订单状态对应的状态处理模块,得到多个状态处理模块;按照订单状态变化流程,将多个状态处理模块排序,得到状态处理模块队列。
7、可选地,生成与相邻的订单状态对应的状态处理模块,包括:确定相邻的订单状态中的在先的订单状态,以及在后的订单状态;获取将处于在先的订单状态的订单,处理为处于在后的订单状态的订单的处理步骤;将处理步骤集成得到与相邻的订单状态对应的状态处理模块。
8、根据本发明实施例的另一方面,还提供了一种数据处理装置,包括:第一接收模块,用于接收分别表征请求更新数据库中对应的订单状态的多条待处理的请求;处理模块,用于对多条待处理的请求进行处理,得到处理后的订单状态;第一确定模块,用于对多条待处理的请求进行处理,得到处理后的订单状态。
9、根据本发明实施例的另一方面,提供了一种非易失性存储介质,非易失性存储介质存储有多条指令,指令适于由处理器加载并执行上述中任意一项的数据处理方法。
10、根据本发明实施例的另一方面,提供了一种电子设备,包括:处理器和存储器,存储器用于存储程序,其中,当程序被处理器执行时,使得处理器实现上述任意一项的数据处理方法。
11、根据本发明实施例的再一方面,还提供了一种计算机程序产品,包括计算机指令被处理器执行上述任意一项的数据处理方法。
12、在本发明实施例中,通过接收分别表征请求更新数据库中对应的订单状态的多条待处理的请求;按照预先确定的状态处理模块队列,依次采用状态处理模块队列中的多个状态处理模块,分别对多条待处理的请求进行处理,得到处理后的订单状态;根据处理后的订单状态,对数据库进行更新,能够将全部订单状态信息发送至状态处理模块队列中相应的状态处理模块进行处理,达到了订单状态无损流转的目的,实现了高并发情况下订单状态不被丢弃的技术效果,进而解决了现有技术中数据库处理订单状态过程中因数据量大导致请求丢失、状态更新不及时的技术问题。
1.一种数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述按照预先确定的状态处理模块队列,依次采用所述状态处理模块队列中的多个状态处理模块,分别对所述多条待处理的请求进行处理,得到处理后的订单状态,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述处理后的订单状态,对所述数据库进行更新,包括:
4.根据权利要求3所述的方法,其特征在于,所述按照所述多个状态处理模块的顺序,依次根据所述多个状态处理模块得到的处理后的订单状态,对所述数据库进行更新,包括:
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述状态处理模块队列采用如下方式生成:
6.根据权利要求5所述的方法,其特征在于,所述生成与所述相邻的订单状态对应的状态处理模块,包括:
7.一种数据处理装置,其特征在于,包括:
8.一种非易失性存储介质,其特征在于,所述非易失性存储介质存储有多条指令,所述指令适于由处理器加载并执行权利要求1至6中任意一项所述的数据处理方法。
9.一种电子设备,包括处理器和存储器,其特征在于,所述存储器用于存储计算机程序,其中,当所述计算机程序被所述处理器执行时,使得所述处理器实现权利要求1至6中任意一项所述的数据处理方法。
10.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行权利要求1至6中任意一项所述的数据处理方法。
