任务处理方法、装置、计算机设备、可读存储介质和程序产品与流程
- 国知局
- 2024-09-11 14:24:04
本技术涉及大数据,特别是涉及一种任务处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
背景技术:
1、随着大数据技术的发展,出现了数据集市或数据仓库,数据仓库是一个集成的面向主题的数据集合,在数据仓库里,每个数据单元都和特定的时间相关。数据集市是一个小型的数据仓库。传统技术中,一方面,对大批量数据的计算通常依赖数据集市或数据仓库,以批量模式在数据集市依次完成数据任务清单的计算任务,对数据库服务器性能要求高。另一方面,利用数据流处理每个数据任务清单(百万级),由于无法处理大数据量,需要把每个数据任务清单拆分成上千个万级的数据包,通过一个数据流处理,实现数据任务清单的计算。
2、数据任务清单的计算过程中,需要关联的数据量大,当处理一个百万级数据的数据任务清单时,经常处理需要几十分钟或上小时,导致数据任务计算的效率低下。
技术实现思路
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、上述任务处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,通过在执行多个数据处理任务时,对多个数据处理任务中存在执行顺序的子任务并行处理,在执行第一数据处理任务的第一子任务完成时,将用于执行第一子任务的第一执行单元分配至第二数据处理任务的执行,第一执行单元执行完毕一个数据处理任务的第一子任务时,第一执行单元可以处理其他数据处理任务的第一子任务,避免了一个数据处理任务中的子任务均执行完毕后,才开始执行其他数据处理任务,减少了等待时间,从而提高了数据任务处理的效率。
本文地址:https://www.jishuxx.com/zhuanli/20240911/290575.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。