一种数据处理方法、装置、计算机设备以及可读存储介质与流程

本技术涉及计算机,尤其涉及一种数据处理方法、装置、计算机设备以及可读存储介质。
背景技术:
1、批量处理场景可以在接收到终端设备发送的批量数据处理请求之后,生成批量数据处理请求对应的批量处理任务,进而对批量处理任务中的n个业务子任务进行异步处理,直到n个业务子任务全部执行完成。
2、然而,异步处理过程中对每个业务子任务的处理均需要花费一定时间,所以n个业务子任务全部执行完成需要花费一段时间,导致无法及时向终端设备响应针对n个业务子任务的最终处理结果。因此,批量处理场景在异步处理过程中可能会再次接收到终端设备针对n个业务子任务所发送的批量数据处理请求(即接收到针对相同的业务子任务的批量数据处理请求),从而浪费了网络资源。
技术实现思路
1、本技术实施例提供一种数据处理方法、装置、计算机设备以及可读存储介质,可以节省网络资源。
2、本技术实施例一方面提供了一种数据处理方法,包括:
3、接收终端设备发送的批量数据处理请求,生成批量数据处理请求对应的批量处理任务;批量处理任务包括终端设备所请求处理的n个业务子任务;n为正整数;
4、将与n个业务子任务相关联的任务执行数据存储至业务数据库;
5、对批量处理任务中的n个业务子任务进行异步处理,当获取到异步处理过程中针对n个业务子任务的中间处理结果时,根据中间处理结果对业务数据库中的任务执行数据进行异步更新;
6、接收终端设备轮询发送的任务查询请求,根据任务查询请求和异步更新后的任务执行数据生成针对n个业务子任务的处理进度信息,将处理进度信息返回至终端设备;处理进度信息用于指示终端设备周期更新显示针对n个业务子任务的处理进度。
7、本技术实施例一方面提供了一种数据处理装置,包括:
8、任务生成模块,用于接收终端设备发送的批量数据处理请求,生成批量数据处理请求对应的批量处理任务;批量处理任务包括终端设备所请求处理的n个业务子任务;n为正整数;
9、数据存储模块,用于将与n个业务子任务相关联的任务执行数据存储至业务数据库;
10、异步处理模块,用于对批量处理任务中的n个业务子任务进行异步处理,当获取到异步处理过程中针对n个业务子任务的中间处理结果时,根据中间处理结果对业务数据库中的任务执行数据进行异步更新;
11、信息返回模块,用于接收终端设备轮询发送的任务查询请求,根据任务查询请求和异步更新后的任务执行数据生成针对n个业务子任务的处理进度信息,将处理进度信息返回至终端设备;处理进度信息用于指示终端设备周期更新显示针对n个业务子任务的处理进度。
12、其中,任务生成模块包括:
13、参数校验单元,用于通过服务组件接收终端设备发送的批量数据处理请求,对批量数据处理请求所携带的请求数据进行参数校验,得到参数校验结果;请求数据包括发送批量数据处理请求的请求对象的对象标识;
14、存储器查找单元,用于在参数校验结果指示校验通过时,根据对象标识对缓存存储器进行查找,得到缓存查找结果;
15、任务生成单元,用于基于缓存查找结果将请求数据发送至逻辑组件,在逻辑组件中,基于请求数据生成批量数据处理请求对应的批量处理任务。
16、其中,任务生成单元包括:
17、第一生成子单元,用于若缓存查找结果指示缓存存储器中存在对象标识对应的任务执行状态,则在任务执行状态为可执行状态时,通过服务组件将请求数据发送至逻辑组件,在逻辑组件中,基于请求数据生成批量数据处理请求对应的批量处理任务;
18、第二生成子单元,用于若缓存查找结果指示缓存存储器中不存在对象标识对应的任务执行状态,则通过服务组件将请求数据发送至逻辑组件,在逻辑组件中,基于请求数据生成批量数据处理请求对应的批量处理任务。
19、其中,第一生成子单元,具体用于通过服务组件将请求数据发送至逻辑组件,在逻辑组件中,基于请求数据获取批量数据处理请求所请求处理的n个业务子任务分别对应的子任务标识;
20、第一生成子单元,具体用于通过逻辑组件获取随机数算法所生成的随机数,对当前时间戳、请求数据中的对象标识和随机数进行拼接,生成批量数据处理请求对应的任务标识;
21、第一生成子单元,具体用于在逻辑组件中,基于任务标识、对象标识和n个子任务标识,生成批量数据处理请求对应的批量处理任务。
22、其中,请求数据还包括批量数据处理请求针对n个业务子任务的操作类型;
23、第一生成子单元,具体用于在请求数据中的操作类型为批量处理类型时,通过逻辑组件从请求数据中获取批量数据处理请求所请求处理的n个业务子任务分别对应的子任务标识;
24、第一生成子单元,具体用于在请求数据中的操作类型为全量处理类型时,通过逻辑组件从业务数据库中获取请求数据中的对象标识对应的单据存储表,从单据存储表中获取与请求对象相关联的子任务标识,将与请求对象相关联的子任务标识确定为批量数据处理请求所请求处理的n个业务子任务分别对应的子任务标识。
25、其中,数据存储模块包括:
26、第一存储单元,用于通过逻辑组件从批量数据处理请求所携带的请求数据中获取发送批量数据处理请求的请求对象的对象标识;
27、第一存储单元,用于通过逻辑组件将未开始状态确定为n个业务子任务分别对应的子任务状态;
28、第一存储单元,用于通过逻辑组件将n个业务子任务、n个子任务状态和对象标识确定为任务填充信息;
29、第一存储单元,用于通过逻辑组件将批量处理任务对应的任务标识和任务填充信息关联为与n个业务子任务相关联的任务执行数据,将任务执行数据存储至业务数据库。
30、其中,n个业务子任务包括业务子任务si,i为小于或等于n的正整数;
31、数据存储模块包括:
32、第二存储单元,用于通过逻辑组件从批量数据处理请求所携带的请求数据中获取发送批量数据处理请求的请求对象的对象标识;
33、第二存储单元,用于通过逻辑组件将未开始状态确定为业务子任务si对应的子任务状态;
34、第二存储单元,用于通过逻辑组件将业务子任务si、业务子任务si对应的子任务状态和对象标识确定为业务子任务si对应的任务填充信息;
35、第二存储单元,用于通过逻辑组件将业务子任务si对应的子任务标识和业务子任务si对应的任务填充信息关联为与业务子任务si相关联的任务执行数据,将与业务子任务si相关联的任务执行数据存储至业务数据库,直至将与n个业务子任务分别关联的任务执行数据均存储至业务数据库。
36、其中,装置还包括:
37、队列遍历模块,用于通过逻辑组件将批量处理任务添加至消息队列;
38、队列遍历模块,用于通过消息服务对添加有批量处理任务的消息队列进行循环遍历;
39、队列遍历模块,用于当从消息队列中遍历得到批量处理任务时,执行对批量处理任务中的n个业务子任务进行异步处理的步骤。
40、其中,装置还包括:
41、状态存储模块,用于通过逻辑组件将未开始状态确定为批量处理任务对应的任务执行状态;
42、状态存储模块,用于在逻辑组件将请求对象的对象标识和任务执行状态关联存储至缓存存储器时,通过逻辑组件向服务组件返回批量处理成功信息,通过服务组件向终端设备返回批量处理成功信息;批量处理成功信息用于指示终端设备轮询发送任务查询请求。
43、其中,n个业务子任务包括业务子任务si,i为小于或等于n的正整数;
44、异步处理模块包括:
45、结果生成单元,用于通过消息服务对批量处理任务中的业务子任务si进行子任务处理,生成针对业务子任务si的中间处理结果;
46、状态获取单元,用于从业务数据库的任务执行数据中获取业务子任务si对应的子任务状态,根据针对业务子任务si的中间处理结果,更新业务子任务si对应的子任务状态。
47、其中,信息返回模块包括:
48、请求接收单元,用于通过服务组件接收终端设备轮询发送的任务查询请求,将任务查询请求发送至逻辑组件;
49、信息生成单元,用于在逻辑组件中,基于任务查询请求从业务数据库中获取异步更新后的任务执行数据,根据异步更新后的任务执行数据生成针对n个业务子任务的处理进度信息;
50、信息返回单元,用于通过逻辑组件将处理进度信息返回至服务组件,通过服务组件将处理进度信息返回至终端设备。
51、其中,装置还具体用于向终端设备发送初始轮询处理机制;初始轮询处理机制用于指示终端设备基于初始时间周期轮询发送任务查询请求;初始时间周期用于确定终端设备实时更新进度信息的频率;
52、则信息返回模块,具体用于接收终端设备基于初始时间周期发送的任务查询请求,根据任务查询请求和异步更新后的任务执行数据生成n个业务子任务在初始时间周期内的周期完成信息;
53、信息返回模块,具体用于根据周期完成信息对n个业务子任务的历史完成信息进行累计更新,根据更新后的历史完成信息生成针对n个业务子任务的处理进度信息,将处理进度信息返回至终端设备;终端设备用于基于处理进度信息对历史进度信息进行更新;历史进度信息为终端设备基于历史任务查询请求所获取到的进度信息;终端设备发送历史任务查询请求和任务查询请求的时间间隔为初始时间周期。
54、其中,信息返回模块,还具体用于从异步处理过程中的n个业务子任务中获取子任务状态为已完成状态的业务子任务,获取具有已完成状态的业务子任务的子任务处理时长的平均值;
55、信息返回模块,还具体用于若平均值大于处理时长阈值,则生成与目标时间周期相关联的目标轮询处理机制;目标时间周期大于初始时间周期;
56、信息返回模块,还具体用于将目标轮询处理机制发送至终端设备,以使终端设备基于目标轮询处理机制将初始时间周期更新为目标时间周期;目标轮询处理机制用于指示终端设备基于目标时间周期轮询发送新的任务查询请求。
57、本技术实施例一方面提供了一种计算机设备,包括:处理器和存储器;
58、处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本技术实施例提供的方法。
59、本技术实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本技术实施例提供的方法。
60、本技术实施例一方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本技术实施例提供的方法。
61、在本技术实施例中,业务服务器可以接收终端设备发送的批量数据处理请求,生成批量数据处理请求对应的批量处理任务,进而将与批量处理任务中的n个业务子任务相关联的任务执行数据存储至业务数据库。进一步地,业务服务器可以对批量处理任务中的n个业务子任务进行异步处理,当获取到异步处理过程中针对n个业务子任务的中间处理结果时,根据中间处理结果对业务数据库中的任务执行数据进行异步更新,进而接收终端设备轮询发送的任务查询请求,根据任务查询请求和异步更新后的任务执行数据生成针对n个业务子任务的处理进度信息,将处理进度信息返回至终端设备。由此可见,本技术实施例可以根据异步处理过程中实时获取到的中间处理结果,对业务数据库中的与n个业务子任务相关联的任务执行数据进行实时更新,得到异步更新后的任务执行数据(即实时更新的任务执行数据),进而周期性的从业务数据库中获取实时更新的任务执行数据,根据实时更新的任务执行数据生成针对n个业务子任务的处理进度信息,从而周期性的将针对n个业务子任务的处理进度实时反馈给终端设备,使得终端设备可以周期更新显示针对n个业务子任务的处理进度,且在处理进度的提示下就不会出现再次发送针对n个业务子任务的批量数据处理请求的情况,进而业务服务器不会接收针对相同的业务子任务的批量数据处理请求,从而使得批量数据处理请求不会针对相同的业务子任务使用多次(例如,两次)网络资源,进而节省了网络资源。
技术研发人员:王玮犀
技术所有人:腾讯科技(深圳)有限公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
