本发明涉及大数据处理,尤其涉及一种数据下载方法、装置、电子设备和计算机可读介质。
背景技术:
1、网点运营平台作为最重要的员工渠道之一,在使用过程中产生的数据纷繁复杂,每分每秒产生数量庞大的渠道数据都会写入数据集成层数据报表中,渠道报表数据在用数的过程中存在用户需要将其持久化到本地的需求。
2、在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
3、渠道报表数据的下载方案中,存在下载过程占用联机服务器cpu资源过多和同步下载等待时间过长的问题,可能会影响到联机服务器的其他联机交易,存在联机交易阻塞、资源占用多等风险。
技术实现思路
1、有鉴于此,本发明实施例提供一种数据下载方法、装置、电子设备和计算机可读介质,以解决占用服务器资源过多和下载时间过长的技术问题。
2、为实现上述目的,根据本发明实施例的一个方面,提供了一种数据下载方法,包括:
3、接收前端提交的申请异步下载请求,所述申请异步下载请求携带用户标识、场景标识和筛选条件;
4、将当前时间戳、所述用户标识、所述场景标识和所述筛选条件作为一条记录写入用户记录表;
5、根据所述场景标识和所述筛选条件查询文件记录表是否存在对应的第一目标记录;若是,则根据所述第一目标记录的下载状态向所述前端返回已开始离线下载的响应结果和/或更新所述第一目标记录的下载状态;若否,则根据所述筛选条件生成数据库查询语句,根据所述场景标识和当前时间戳生成文件名,将所述数据库查询语句、所述筛选条件、所述文件名和所述场景标识对应的文件存储路径作为一条记录写入所述文件记录表,并向所述前端返回已开始离线下载的响应结果;
6、采用定时批量方式执行所述文件记录表中下载状态为未开始下载的各条记录。
7、可选地,将当前时间戳、所述用户标识、所述场景标识和所述筛选条件作为一条记录写入用户记录表,包括:
8、将所述筛选条件拼接成字符串,计算所述字符串的摘要值;
9、将当前时间戳、所述用户标识、所述场景标识和所述筛选条件对应的摘要值作为一条记录写入用户记录表;
10、根据所述场景标识和所述筛选条件查询文件记录表是否存在对应的第一目标记录,包括:
11、根据所述场景标识和所述筛选条件对应的摘要值查询文件记录表是否存在对应的第一目标记录;
12、将所述数据库查询语句、所述筛选条件、所述文件名和所述场景标识对应的文件存储路径作为一条记录写入所述文件记录表,包括:
13、将所述数据库查询语句、所述筛选条件对应的摘要值、所述文件名和所述场景标识对应的文件存储路径作为一条记录写入所述文件记录表。
14、可选地,根据所述第一目标记录的下载状态向所述前端返回已开始离线下载的响应结果和/或更新所述第一目标记录的下载状态,包括:
15、若所述第一目标记录的下载状态为未开始下载,则向所述前端返回已开始离线下载的响应结果;
16、若所述第一目标记录的下载状态为已开始下载但未生成待下载文件,则向所述前端返回已开始离线下载的响应结果;
17、若所述第一目标记录的下载状态为待下载文件已失效、文件生成失败或者无数据,则将所述第一目标记录的下载状态更新为未开始下载,并向所述前端返回已开始离线下载的响应结果;
18、若所述第一目标记录的下载状态为已生成待下载文件,则结束。
19、可选地,执行所述文件记录表中下载状态为未开始下载的各条记录,包括:
20、从所述文件记录表中查询出下载状态为未开始下载的各条记录;
21、对于每条下载状态为未开始下载的记录,执行所述记录对应的数据库查询语句,将所述记录对应的查询结果保存到所述文件存储路径下并以所述文件名命名;其中,在执行所述记录的过程中,根据执行过程和执行结果更新所述记录的下载状态。
22、可选地,所述方法还包括:
23、采用定时批量方式清除所述文件存储路径下超过时间期限阈值的待下载文件,并将所述待下载文件对应的记录的下载状态更新为待下载文件已失效。
24、可选地,所述申请异步下载请求还携带文件别名;
25、将当前时间戳、所述用户标识、所述场景标识和所述筛选条件作为一条记录写入用户记录表,包括:
26、将当前时间戳、所述用户标识、所述文件别名、所述场景标识和所述筛选条件作为一条记录写入用户记录表;
27、所述方法还包括:
28、接收所述前端提交的下载状态查询请求,所述下载状态查询请求携带查询用户标识、时间条件和文件别名;
29、根据所述用户标识、所述时间条件和所述文件别名查询所述用户记录表是否存在对应的第二目标记录;若是,则基于所述第二目标记录对应的所述场景标识和所述筛选条件从所述文件记录表中查询出第二目标记录对应的下载状态,并将查询结果返回至所述前端。
30、可选地,将查询结果返回至所述前端之后,所述方法还包括:
31、接收所述前端提交的文件下载请求,所述文件下载请求携带所述用户标识和文件别名;
32、基于所述用户标识和所述文件别名从所述用户记录表中查询出对应的场景标识和筛选条件;
33、基于所述场景标识和所述筛选条件从文件记录表中查询出文件名和文件存储路径;
34、基于所述文件名和所述文件存储路径定位出所述待下载文件并将所述待下载文件下发至所述前端。
35、另外,根据本发明实施例的另一个方面,提供了一种数据下载装置,包括:
36、接收模块,用于接收前端提交的申请异步下载请求,所述申请异步下载请求携带用户标识、场景标识和筛选条件;
37、第一记录模块,用户将当前时间戳、所述用户标识、所述场景标识和所述筛选条件作为一条记录写入用户记录表;
38、第二记录模块,根据所述场景标识和所述筛选条件查询文件记录表是否存在对应的第一目标记录;若是,则根据所述第一目标记录的下载状态向所述前端返回已开始离线下载的响应结果和/或更新所述第一目标记录的下载状态;若否,则根据所述筛选条件生成数据库查询语句,根据所述场景标识和当前时间戳生成文件名,将所述数据库查询语句、所述筛选条件、所述文件名和所述场景标识对应的文件存储路径作为一条记录写入所述文件记录表,并向所述前端返回已开始离线下载的响应结果;
39、下载模块,用于采用定时批量方式执行所述文件记录表中下载状态为未开始下载的各条记录。
40、可选地,所述第一记录模块还用于:
41、将所述筛选条件拼接成字符串,计算所述字符串的摘要值;
42、将当前时间戳、所述用户标识、所述场景标识和所述筛选条件对应的摘要值作为一条记录写入用户记录表;
43、所述第二记录模块还用于:
44、根据所述场景标识和所述筛选条件对应的摘要值查询文件记录表是否存在对应的第一目标记录;
45、将所述数据库查询语句、所述筛选条件对应的摘要值、所述文件名和所述场景标识对应的文件存储路径作为一条记录写入所述文件记录表。
46、可选地,所述第二记录模块还用于:
47、若所述第一目标记录的下载状态为未开始下载,则向所述前端返回已开始离线下载的响应结果;
48、若所述第一目标记录的下载状态为已开始下载但未生成待下载文件,则向所述前端返回已开始离线下载的响应结果;
49、若所述第一目标记录的下载状态为待下载文件已失效、文件生成失败或者无数据,则将所述第一目标记录的下载状态更新为未开始下载,并向所述前端返回已开始离线下载的响应结果;
50、若所述第一目标记录的下载状态为已生成待下载文件,则结束。
51、可选地,所述下载模块还用于:
52、从所述文件记录表中查询出下载状态为未开始下载的各条记录;
53、对于每条下载状态为未开始下载的记录,执行所述记录对应的数据库查询语句,将所述记录对应的查询结果保存到所述文件存储路径下并以所述文件名命名;其中,在执行所述记录的过程中,根据执行过程和执行结果更新所述记录的下载状态。
54、可选地,所述下载模块还用于:
55、采用定时批量方式清除所述文件存储路径下超过时间期限阈值的待下载文件,并将所述待下载文件对应的记录的下载状态更新为待下载文件已失效。
56、可选地,所述申请异步下载请求还携带文件别名;
57、所述第一记录模块还用于:
58、将当前时间戳、所述用户标识、所述文件别名、所述场景标识和所述筛选条件作为一条记录写入用户记录表;
59、所述下载模块还用于:
60、接收所述前端提交的下载状态查询请求,所述下载状态查询请求携带查询用户标识、时间条件和文件别名;
61、根据所述用户标识、所述时间条件和所述文件别名查询所述用户记录表是否存在对应的第二目标记录;若是,则基于所述第二目标记录对应的所述场景标识和所述筛选条件从所述文件记录表中查询出第二目标记录对应的下载状态,并将查询结果返回至所述前端。
62、可选地,所述下载模块还用于:
63、接收所述前端提交的文件下载请求,所述文件下载请求携带所述用户标识和文件别名;
64、基于所述用户标识和所述文件别名从所述用户记录表中查询出对应的场景标识和筛选条件;
65、基于所述场景标识和所述筛选条件从文件记录表中查询出文件名和文件存储路径;
66、基于所述文件名和所述文件存储路径定位出所述待下载文件并将所述待下载文件下发至所述前端。
67、根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
68、一个或多个处理器;
69、存储装置,用于存储一个或多个程序,
70、当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
71、根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
72、根据本发明实施例的另一个方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
73、上述发明中的一个实施例具有如下优点或有益效果:因为采用根据场景标识和筛选条件查询文件记录表是否存在对应的第一目标记录,若是,则根据第一目标记录的下载状态向前端返回已开始离线下载的响应结果和/或更新第一目标记录的下载状态,若否,则根据筛选条件生成数据库查询语句,根据场景标识和当前时间戳生成文件名,将数据库查询语句、筛选条件、文件名和场景标识对应的文件存储路径作为一条记录写入文件记录表,并向前端返回已开始离线下载的响应结果的技术手段,所以克服了现有技术中占用服务器资源过多和下载时间过长的技术问题。本发明实施例通过场景标识和筛选条件关联文件记录表和用户记录表,用户记录表与文件记录表分离,使得记录下载队列于真实下载动作分离,不但可以避免重复下载数据,节省联机服务器的资源,不影响联机服务器的其他功能,还可以缩短用户等待文件下载的时间。
74、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
1.一种数据下载方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,将当前时间戳、所述用户标识、所述场景标识和所述筛选条件作为一条记录写入用户记录表,包括:
3.根据权利要求1所述的方法,其特征在于,根据所述第一目标记录的下载状态向所述前端返回已开始离线下载的响应结果和/或更新所述第一目标记录的下载状态,包括:
4.根据权利要求1所述的方法,其特征在于,执行所述文件记录表中下载状态为未开始下载的各条记录,包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述申请异步下载请求还携带文件别名;
7.根据权利要求6所述的方法,其特征在于,将查询结果返回至所述前端之后,所述方法还包括:
8.一种数据下载装置,其特征在于,包括:
9.根据权利要求8所述的装置,其特征在于,所述第一记录模块还用于:
10.根据权利要求8所述的装置,其特征在于,所述第二记录模块还用于:
11.根据权利要求8所述的装置,其特征在于,所述下载模块还用于:
12.根据权利要求11所述的装置,其特征在于,所述下载模块还用于:
13.根据权利要求8所述的装置,其特征在于,所述申请异步下载请求还携带文件别名;
14.根据权利要求13所述的装置,其特征在于,所述下载模块还用于:
15.一种电子设备,其特征在于,包括:
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
17.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。