业务指标任务调度及执行方法、装置、系统及存储介质.pdf

上传人:万林****人 文档编号:11086487 上传时间:2021-09-03 格式:PDF 页数:17 大小:655.72KB
收藏 版权申诉 举报 下载
业务指标任务调度及执行方法、装置、系统及存储介质.pdf_第1页
第1页 / 共17页
业务指标任务调度及执行方法、装置、系统及存储介质.pdf_第2页
第2页 / 共17页
业务指标任务调度及执行方法、装置、系统及存储介质.pdf_第3页
第3页 / 共17页
文档描述:

《业务指标任务调度及执行方法、装置、系统及存储介质.pdf》由会员分享,可在线阅读,更多相关《业务指标任务调度及执行方法、装置、系统及存储介质.pdf(17页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910784989.2 (22)申请日 2019.08.23 (71)申请人 阿里巴巴集团控股有限公司 地址 英属开曼群岛大开曼资本大厦一座四 层847号邮箱 (72)发明人 郭科蒋佩伶 (74)专利代理机构 北京风雅颂专利代理有限公 司 11403 代理人 郭曼 (51)Int.Cl. G06F 9/48(2006.01) (54)发明名称 业务指标任务调度及执行方法、 装置、 系统 及存储介质 (57)摘要 本发明公开了一种业务指标任务调度方法, 包括: 确定作为任务拆。

2、分依据的一个或多个数据 字段; 根据确定的所述一个或多个数据字段, 对 待计算的业务指标任务进行拆分, 得到至少一个 业务指标子任务; 获取可用的任务执行器的标识 信息; 将所述至少一个业务指标子任务在所述可 用的任务执行器中进行分配, 确定执行各个业务 指标子任务的任务执行器的标识信息; 以及将执 行各个业务指标子任务的任务执行器的标识信 息输出到任务管理器。 本发明还公开了业务指标 任务执行方法、 任务分配器、 任务执行器、 业务指 标任务调度系统计算设备以及计算机可读存储 介质。 权利要求书3页 说明书10页 附图3页 CN 110659117 A 2020.01.07 CN 11065。

3、9117 A 1.一种业务指标任务调度方法, 其特征在于, 包括: 确定作为任务拆分依据的一个或多个数据字段; 根据确定的所述一个或多个数据字段, 对待计算的业务指标任务进行拆分, 得到至少 一个业务指标子任务; 获取可用的任务执行器的标识信息; 将所述至少一个业务指标子任务在所述可用的任务执行器中进行分配, 确定执行各个 业务指标子任务的任务执行器的标识信息; 以及 将执行各个业务指标子任务的任务执行器的标识信息输出到任务管理器。 2.根据权利要求1所述的业务指标任务调度方法, 其特征在于, 所述任务执行器的标识 信息包括: 任务执行器的设备ID。 3.根据权利要求2所述的业务指标任务调度方。

4、法, 其特征在于, 所述任务执行器的标识 信息进一步包括: 应用ID以及进程ID中的至少一种。 4.根据权利要求1所述的业务指标任务调度方法, 其特征在于, 所述将所述至少一个业 务指标子任务在所述可用的任务执行器中进行分配包括: 建立业务指标子任务的任务标识 与任务执行器标识信息的对应关系, 其中, 一个任务执行器标识信息对应一个或多个业务 指标子任务的任务标识。 5.根据权利要求4所述的业务指标任务调度方法, 其特征在于, 所述建立业务指标子任 务的任务标识与任务执行器标识信息的对应关系包括: 获取业务指标子任务的任务标识; 计算所述任务标识的散列值; 以及 根据所述任务标识的散列值与可用。

5、的任务执行器标识信息的数量建立任务标识和任 务执行器的标识信息之间的对应关系。 6.根据权利要求5所述的业务指标任务调度方法, 其特征在于, 所述根据所述任务标识 的散列值与可用的任务执行器标识信息的数量建立任务标识和任务执行器的标识信息之 间的对应关系包括: 以可用的任务执行器标识信息的数量作为除数求所述任务标识的散列值的除以所述 数量后的余数; 分别将每个余数对应一个任务执行器标识信息; 按照所述余数值和任务执行器标识信息的对应关系, 建立任务标识和任务执行器标识 信息的对应关系。 7.根据权利要求5所述的业务指标任务调度方法, 其特征在于, 所述计算所述任务标识 的散列值包括: 采用MD。

6、5算法或哈希算法计算所述任务标识的散列值。 8.根据权利要求1所述的业务指标任务调度方法, 其特征在于, 所述方法进一步包括: 获取所述任务执行器对所述业务指标子任务的执行结果; 以及 合并所述执行结果得到所述业务指标任务的执行结果, 并输出。 9.根据权利要求1所述的业务指标任务调度方法, 其特征在于, 所述方法进一步包括: 每隔预定的时间重新确定实现所述业务指标任务调度方法的任务执行器。 10.根据权利要求9所述的业务指标任务调度方法, 其特征在于, 所述重新确定实现所 述业务指标任务调度方法的任务执行器包括: 定时调度预先配置的任务分配者任务, 确定 权利要求书 1/3 页 2 CN 1。

7、10659117 A 2 自身是否为任务分配者。 11.根据权利要求1所述的业务指标任务调度方法, 其特征在于, 所述方法进一步包括: 获取各个任务执行器反馈的业务指标子任务的预计完成情况, 并根据业务指标子任务的预 计完成情况调整业务指标子任务的分配。 12.一种业务指标任务执行方法, 其特征在于, 包括: 根据预定的时间间隔, 定时向任务执行器管理器注册; 根据自身的标识信息, 从任务管理器拉取分配给自身的业务指标子任务; 执行分配给自身的业务指标子任务; 以及 将所述业务指标子任务的执行结果反馈至任务管理器。 13.根据权利要求12所述的业务指标任务调度方法, 其特征在于, 所述定时向任。

8、务执行 器管理器注册包括: 定时向任务执行器管理器发送心跳信号; 其中, 所述心跳信号包括: 自 身的标识信息。 14.根据权利要求12所述的业务指标任务调度方法, 其特征在于, 所述方法进一步包 括: 在执行分配给自身的业务指标子任务之前, 对自身的未完成任务以及自身的空闲资源 进行检查, 确定分配给自身的业务指标子任务的预计完成情况, 并将预计执行情况反馈至 任务管理器。 15.一种任务分配器, 其特征在于, 包括: 配置模块, 用于确定作为任务拆分依据的一个或多个数据字段; 任务拆分模块, 用于根据确定的所述一个或多个数据字段, 对待计算的业务指标任务 进行拆分, 得到至少一个业务指标子。

9、任务; 标识获取模块, 用于获取可用的任务执行器的标识信息; 分配模块, 用于将所述至少一个业务指标子任务在所述可用的任务执行器中进行分 配, 确定执行各个业务指标子任务的任务执行器的标识信息; 以及 记录模块, 用于将执行各个业务指标子任务的任务执行器的标识信息记录在任务管理 器中。 16.根据权利要求15所述的任务分配器, 其特征在于, 所述分配模块包括: 子任务标识获取单元, 用于获取业务指标子任务的任务标识; 散列值计算单元, 用于计算所述任务标识的散列值; 以及 分配单元, 用于根据所述任务标识的哈希值与可用的任务执行器标识信息的数量建立 任务标识和任务执行器的标识信息之间的对应关系。

10、。 17.根据权利要求15所述的任务分配器, 其特征在于, 所述任务分配器进一步包括: 执行结果获取模块, 用于获取任务执行器对所述业务指标子任务的执行结果; 以及 合并模块, 用于合并所述执行结果得到所述业务指标任务的执行结果, 并输出。 18.一种任务执行器, 其特征在于, 包括: 注册模块, 用于根据预定的时间间隔, 定时向任务执行器管理器注册; 任务拉取模块, 用于根据自身的标识信息, 从任务管理器拉取分配给自身的业务指标 子任务; 任务执行模块, 用于执行分配给自身的业务指标子任务; 以及 结果反馈模块, 用于将业务指标子任务的执行结果反馈至任务管理器。 权利要求书 2/3 页 3 。

11、CN 110659117 A 3 19.根据权利要求18所述的任务执行器, 其特征在于, 所述任务执行器进一步包括: 检 查模块, 用于在执行分配给自身的业务指标子任务之前对自身的未完成任务以及自身的空 闲资源进行检查, 确定分配给自身的业务指标子任务的预计完成情况; 其中, 所述结果反馈 模块进一步将预计执行情况反馈至任务管理器。 20.一种业务指标任务调度系统, 其特征在于, 包括: 多个如权利要求18或19所述的任务执行器, 其中, 所述多个任务执行器之一包括如权 利要求15至17中任一项所述的任务分配器; 任务管理器, 用于记录由所述任务分配器确定的执行各个业务指标子任务的任务执行 器。

12、的标识信息; 以及记录所述多个任务执行器对业务指标子任务的执行结果; 以及 任务执行器管理器, 用于对所述多个任务执行器进行注册, 记录可用的任务执行器的 标识信息。 21.一种计算设备, 其特征在于, 包括: 至少一个处理器; 存储器; 输出装置; 以及 连接所述至少一个处理器、 存储器以及输出装置的总线; 其中, 所述至少一个处理器用于执行存储器存储的机器可读指令模块, 执行如权利要求1至 14中任一权利要求所述的方法。 22.一种计算机可读介质, 其上存储有计算机程序, 该计算机程序被处理器执行时实现 如权利要求1至14中任一权利要求所述的方法。 权利要求书 3/3 页 4 CN 110。

13、659117 A 4 业务指标任务调度及执行方法、 装置、 系统及存储介质 技术领域 0001 本发明涉及互联网技术, 特别涉及一种业务指标任务调度及执行方法、 装置、 系统 和计算机可读存储介质。 背景技术 0002 随着数据化运营的全面铺开, 公司、 部门以及各种业务的运作情况可以被360度以 数据形式的业务指标的形式来观察, 例如, 手机应用(APP)的登录成功率、 APP内广告的点击 率等等可以作为业务指标用以观察APP的运作情况。 数据化的好处之一是可以让运营方一 目了然地对一段时间内运营情况进行了解, 从而依据业务指标的情况做出相应策略配置或 者调整。 0003 目前对于业务指标的。

14、计算一般是由进行业务指标计算的设备通过设置定时任务 的方式来完成, 也即该计算设备分别将每个业务指标的计算设置为一项定时任务。 这样, 每 隔预定的时间该计算设备就会自动调用设定的定时任务对相应业务指标进行一次计算并 输出。 0004 然而, 随着业务指标的维度以及数据来源的渠道逐渐增多, 单一业务指标的计算 也逐渐变得越来越复杂, 所需要的计算资源或者计算时间也越来越多, 这种情况不但使业 务指标输出的实效性变的很差, 而且严重时还可能导致任务卡住, 最终导致业务指标计算 任务无法完成。 发明内容 0005 有鉴于此, 本发明的实施例提出了一种业务指标任务调度方法。 该方法包括: 确定 作为。

15、任务拆分依据的一个或多个数据字段; 根据确定的所述一个或多个数据字段, 对待计 算的业务指标任务进行拆分, 得到至少一个业务指标子任务; 获取可用的任务执行器的标 识信息; 将所述至少一个业务指标子任务在所述可用的任务执行器中进行分配, 确定执行 各个业务指标子任务的任务执行器的标识信息; 以及将执行各个业务指标子任务的任务执 行器的标识信息输出到任务管理器。 0006 其中, 上述任务执行器的标识信息包括: 任务执行器的设备ID。 上述任务执行器的 标识信息进一步包括: 应用ID以及进程ID中的至少一种。 0007 其中, 上述将所述至少一个业务指标子任务在所述可用的任务执行器中进行分配 包。

16、括: 建立业务指标子任务的任务标识与任务执行器标识信息的对应关系, 其中一个任务 执行器标识信息对应一个或多个业务指标子任务的任务标识。 0008 其中, 上述建立业务指标子任务的任务标识与任务执行器标识信息的对应关系包 括: 获取业务指标子任务的任务标识; 计算所述任务标识的散列值; 以及根据所述任务标识 的散列值与可用的任务执行器标识信息的数量建立任务标识和任务执行器的标识信息之 间的对应关系。 0009 其中, 上述根据所述任务标识的散列值与可用的任务执行器标识信息的数量建立 说明书 1/10 页 5 CN 110659117 A 5 任务标识和任务执行器的标识信息之间的对应关系包括: 。

17、以可用的任务执行器标识信息的 数量作为除数求所述任务标识的散列值的除以所述数量后的余数; 分别将每个余数对应一 个任务执行器标识信息; 以及按照所述余数值和任务执行器标识信息的对应关系, 建立任 务标识和任务执行器标识信息的对应关系。 0010 其中, 上述计算所述任务标识的散列值包括: 采用MD5算法或哈希算法计算所述任 务标识的散列值。 0011 其中, 上述方法进一步包括: 获取所述任务执行器对所述业务指标子任务的执行 结果; 以及合并所述执行结果得到所述业务指标任务的执行结果, 并输出。 0012 其中, 上述方法进一步包括: 每隔预定的时间重新确定实现所述业务指标任务调 度方法的任务。

18、执行器。 0013 其中, 上述重新确定实现所述业务指标任务调度方法的任务执行器包括: 定时调 度预先配置的任务分配者任务, 确定自身是否为任务分配者。 0014 其中, 上述方法进一步包括: 获取各个任务执行器反馈的业务指标子任务的预计 完成情况, 并根据业务指标子任务的预计完成情况调整业务指标子任务的分配。 0015 本发明的实施例还提出了一种业务指标任务执行方法, 该方法包括: 根据预定的 时间间隔, 定时向任务执行器管理器注册; 根据自身的标识信息, 从任务管理器拉取分配给 自身的业务指标子任务; 执行分配给自身的业务指标子任务; 以及将所述业务指标子任务 的执行结果反馈至任务管理器。。

19、 0016 其中, 上述定时向任务执行器管理器注册包括: 定时向任务执行器管理器发送心 跳信号; 其中, 所述心跳信号包括: 自身的标识信息。 0017 其中, 上述方法进一步包括: 在执行分配给自身的业务指标子任务之前, 对自身的 未完成任务以及自身的空闲资源进行检查, 确定分配给自身的业务指标子任务的预计完成 情况, 并将预计执行情况反馈至任务管理器。 0018 本发明的实施例还提出了一种任务分配器, 包括: 0019 配置模块, 用于确定作为任务拆分依据的一个或多个数据字段; 0020 任务拆分模块, 用于根据确定的所述一个或多个数据字段, 对待计算的业务指标 任务进行拆分, 得到至少一。

20、个业务指标子任务; 0021 标识获取模块, 用于获取可用的任务执行器的标识信息; 0022 分配模块, 用于将所述至少一个业务指标子任务在所述可用的任务执行器中进行 分配, 确定执行各个业务指标子任务的任务执行器的标识信息; 以及 0023 记录模块, 用于将执行各个业务指标子任务的任务执行器的标识信息记录在任务 管理器中。 0024 其中, 上述分配模块包括: 0025 子任务标识获取单元, 用于获取业务指标子任务的任务标识; 0026 散列值计算单元, 用于计算所述任务标识的散列值; 以及 0027 分配单元, 用于根据所述任务标识的哈希值与可用的任务执行器标识信息的数量 建立任务标识和。

21、任务执行器的标识信息之间的对应关系。 0028 其中, 上述任务分配器进一步包括: 0029 执行结果获取模块, 用于获取任务执行器对所述业务指标子任务的执行结果; 以 说明书 2/10 页 6 CN 110659117 A 6 及 0030 合并模块, 用于合并所述执行结果得到所述业务指标任务的执行结果, 并输出。 0031 本发明的实施例还提出了一种任务执行器, 包括: 0032 注册模块, 用于根据预定的时间间隔, 定时向任务执行器管理器注册; 0033 任务拉取模块, 用于根据自身的标识信息, 从任务管理器拉取分配给自身的业务 指标子任务; 0034 任务执行模块, 用于执行分配给自身。

22、的业务指标子任务; 以及 0035 结果反馈模块, 用于将业务指标子任务的执行结果反馈至任务管理器。 0036 其中, 上述任务执行器进一步包括: 检查模块, 用于在执行分配给自身的业务指标 子任务之前对自身的未完成任务以及自身的空闲资源进行检查, 确定分配给自身的业务指 标子任务的预计完成情况; 其中, 所述结果反馈模块进一步将预计执行情况反馈至任务管 理器。 0037 本发明的实施例还提出了一种业务指标任务调度系统, 包括: 0038 多个上任务执行器, 其中, 所述多个任务执行器之一包括上述任务分配器; 0039 任务管理器, 用于记录由所述任务分配器确定的执行各个业务指标子任务的任务 。

23、执行器的标识信息; 以及记录所述多个任务执行器对业务指标子任务的执行结果; 以及 0040 任务执行器管理器, 用于对所述多个任务执行器进行注册, 记录可用的任务执行 器的标识信息。 0041 本发明的实施例还提出了一种计算设备, 包括: 0042 至少一个处理器; 0043 存储器; 0044 输出装置; 以及 0045 连接所述至少一个处理器、 存储器以及输出装置的总线; 其中, 0046 所述至少一个处理器用于执行存储器存储的机器可读指令模块, 执行上述方法。 0047 本发明的实施例还提出了一种计算机可读介质, 其上存储有计算机程序, 该计算 机程序被处理器执行时实现上述方法。 004。

24、8 由此可以看出, 上述业务指标任务调度系统是一个分布式系统, 通过该分布式系 统以及业务指标任务的调度方法可以将业务方自定义的业务指标任务拆分成多个子任务, 并将多个子任务均衡地分配至系统中的多个任务执行器分别执行。 这样, 即使业务指标需 要计算的内容不断地扩展或者获得业务指标相关数据的渠道/维度不断增加, 也可以基本 确保每个子任务的计算量在任务执行器可有效执行的范围内, 从而避免任务的积压或者内 存被打爆的情况, 提高系统效率, 满足业务方的需求。 附图说明 0049 图1显示了本发明实施例所述业务指标任务调度系统100结构示意图; 0050 图2显示了本发明实施例所述的业务指标任务调。

25、度方法流程图; 0051 图3显示了采用哈希算法对业务指标子任务进行分配的流程示意图; 0052 图4显示了本发明实施例所述的任务执行器执行业务指标任务的方法; 0053 图5显示了本发明实施例所述的任务分配器的内部结构; 说明书 3/10 页 7 CN 110659117 A 7 0054 图6显示了本发明实施例所述的任务执行器的内部结构; 以及 0055 图7显示了本发明实施例所述计算设备的内部结构。 具体实施方式 0056 为使本发明的目的、 技术方案和优点更加清楚明白, 以下结合具体实施例, 并参照 附图, 对本发明进一步详细说明。 0057 如前所述, 目前对于业务指标的计算一般是通。

26、过设置定时任务的方式来完成的, 也即计算设备分别将每个业务指标的计算设置为一项定时任务, 例如每10分钟执行一次。 那么如果这个业务指标的计算任务可以在上述预定的时间内计算完成, 则没有问题。 然而, 在实际的应用中, 业务指标需要计算的内容通常会不断地扩展, 导致这个业务指标的计算 任务无法在预定的时间内计算完成, 导致任务的积压。 此外, 随着获得业务指标相关数据的 渠道的不断增加, 被拉取到计算设备内存的内容也会增加, 这些内容达到一定极限后会把 计算设备的内存打爆, 导致业务指标计算任务的失败。 0058 基于上述情况, 本发明的实施例提供了一种业务指标任务调度系统100。 该业务指 。

27、标任务调度系统100可以用于执行业务方自定义的业务指标任务。 图1显示了本发明实施例 所述的业务指标任务调度系统100的结构示意图。 0059 如图1所述, 该业务指标任务调度系统100包括多个任务执行器101、 任务执行器管 理器102以及任务管理器103。 0060 其中, 上述任务执行器101具体可以是一个具有计算功能的单独计算设备, 例如工 作站等。 在本发明的实施例中, 上述任务执行器101可以用于计算业务指标, 例如, APP的登 录成功率、 APP内广告的点击率、 各渠道支持率等等。 0061 在本发明的实施中, 上述多个任务执行器101需要首先在任务执行器管理器102进 行注册。

28、后才能作为可用的任务执行器用于计算业务指标。 通过上述注册过程, 上述任务执 行器管理器102可以记录该业务指标任务调度系统100中所有可用的任务执行器101的标识 信息。 上述标识信息可以包括: 任务执行器101的设备标识(ID), 例如, 任务执行器101的IP。 此外, 上述标识信息还可以进一步包括任务执行器101中可用的应用ID(例如, JAVA虚拟机 的JVMID)和/或进程ID。 0062 在本发明的实施例中, 上述多个任务执行器101之一还可以包括任务分配器。 上述 任务分配器一方面可以对待计算的业务指标任务进行拆分, 得到至少一个业务指标子任 务; 将拆分得到的至少一个业务指标。

29、子任务在所有可用的任务执行器101中进行分配, 得到 执行各个业务指标子任务的任务执行器101的标识信息; 并将执行各个业务指标子任务的 任务执行器101的标识信息记录在任务管理器103; 另一方面还可以将上述多个任务执行器 101的执行结果进行合并得到业务指标任务的结果。 具体而言, 上述任务分配器可以从任务 执行器管理器102拉取当前所有可用的任务执行器101。 0063 上述任务管理器103一方面可以存储由任务分配器分配得到的执行各个业务指标 子任务的任务执行器101的标识信息; 另一方面还可以记录各个任务执行器101的执行结 果。 0064 在本发明的实施例中, 上述多个任务执行器10。

30、1可以从上述任务管理器103拉取已 分配给自身的业务指标子任务, 执行拉取的业务指标子任务, 并将执行结果反馈给上述任 说明书 4/10 页 8 CN 110659117 A 8 务管理器103。 0065 具体地, 上述任务执行器管理器102以及任务管理器103可以由数据存储设备或者 通过数据库实现, 例如MySQL或Redis。 此外, 在本发明的实施例中, 上述任务执行器管理器 102以及任务管理器103可以由不同的物理设备实现或者也可以由同一个物理设备实现。 0066 此外, 在本发明的实施例中, 每个任务执行器101可以采用心跳的方式在任务执行 器管理器102中进行注册。 例如, 每。

31、个任务执行器101定时(例如, 每分钟)向任务执行器管理 器102发送心跳信号, 其中, 上述心跳信号包括: 任务执行器101的标识信息。 0067 在进行任务分配时, 任务分配器首先从任务执行器管理器102获取当前可用的任 务执行器101的标识信息。 然后, 任务分配器可以根据获取的任务执行器101的标识信息对 拆分的至少一个业务指标子任务进行分配, 确定执行每个业务指标子任务的任务执行器 101的标识信息。 例如, 如果上述任务分配器可以从任务执行器管理器102获取当前可用的 任务执行器101的设备ID以及各个任务执行器101中可用的应用ID以及进程ID, 则任务分配 器可以根据获取的可用。

32、的任务执行器101的设备ID、 各个任务执行器101中可用的应用ID以 及进程ID对拆分的至少一个业务指标子任务进行分配, 确定执行每个业务指标子任务的任 务执行器101、 应用以及进程。 0068 在本发明的实施例中, 每个任务执行器101也将基于自身的标识信息从任务管理 器103拉取分配给自身的业务指标子任务。 0069 此外, 上述多个任务执行器101也可以支持用户上传用户自定义函数(UDF)从而实 现用户自定义的功能。 此外, 用户还可以自定义执行每个子任务的最大线程数、 重复执行次 数等等参数, 从而对任务执行器101进行配置。 0070 由此可以看出, 上述业务指标任务调度系统10。

33、0是一个分布式系统, 该分布式系统 可以将业务方自定义的业务指标任务拆分成多个子任务, 并将多个子任务均衡地分配至系 统中的多个任务执行器分别执行。 这样, 即使业务指标需要计算的内容不断地扩展或者获 得业务指标相关数据的渠道/维度不断增加, 也可以基本确保每个子任务的计算量在任务 执行器可有效执行的范围内, 从而避免任务的积压或者内存被打爆的情况, 从而提高系统 效率, 满足业务方的需求。 0071 下面就结合附图分别详细说明本发明实施例所述的业务指标任务调度系统100中 各个设备执行的方法。 0072 图2显示了本发明实施例所述的业务指标任务调度系统100中由多个任务执行器 101之一实现。

34、的任务分配器进行业务指标任务调度的方法。 如图2所示, 该方法包括: 0073 步骤201: 确定作为任务拆分依据的一个或多个数据字段。 0074 在本发明的实施例中, 对待计算的业务指标任务进行拆分的方式可以与业务指标 所涉及的业务有关或者与所要计算的业务指标有关。 例如, 在计算各渠道支持率这一业务 指标的应用场景中, 所要计算的业务指标是各渠道支持率, 因此, 可以按照渠道将计算各渠 道支持率这一业务指标任务拆分成多个计算单个渠道支持率的至少一个业务指标子任务。 因此, 在对待计算的业务指标业务进行拆分之前首先要确定拆分的依据。 0075 在本发明的实施例中, 首先, 接收业务方配置的一。

35、个或多个数据字段作为上述任 务拆分依据。 具体地, 上述任务拆分依据可以包括待拆分业务指标任务所涉及数据内容中 的一个或者多个数据字段。 例如, 上述数据字段可以是数据标签和/或数据维度和/或数据 说明书 5/10 页 9 CN 110659117 A 9 渠道等等。 例如, 在计算各渠道支持率这一业务指标的应用场景中, 所涉及数据内容的一个 字段为渠道, 则可以将数据渠道这一字段确定为任务拆分的依据。 0076 步骤202: 根据确定的数据字段, 对待计算的业务指标任务进行拆分, 得到至少一 个业务指标子任务。 0077 在本发明的实施例中, 可以根据确定的一个或多个数据字段, 对上述待计算。

36、的业 务指标任务所涉及数据内容进行拆分, 使拆分后待计算的数据内容对应上述一个或多个数 据字段的一个取值, 将拆分后待计算的数据内容作为上述至少一个业务指标子任务。 0078 在本发明的实施中, 可以进一步将上述一个或多个数据字段的一个取值作为其对 应业务指标子任务的任务标识。 也即, 每个业务指标子任务将具备一个任务标识。 例如, 在 计算各渠道支持率这一业务指标的应用场景中, 所涉及数据内容的一个字段为数据渠道, 因此, 可以按照数据渠道字段将计算各渠道支持率这一业务指标任务拆分成多个计算单个 渠道支持率的至少一个业务指标子任务, 并将各个数据渠道的渠道值作为其对应业务指标 子任务的任务标。

37、识。 0079 更进一步, 如果按照某个数据字段对业务指标任务进行拆分后所得到的业务指标 任务子任务的计算量还是过大, 还可以进一步依据数据内容的另一个数据字段对这个指标 任务子任务做进一步拆分, 进一步得到至少一个指标任务子任务的子任务。 例如, 在计算各 渠道支持率这一业务指标的应用场景中, 在按照渠道将计算各渠道支持率这一业务指标任 务拆分成多个计算单个渠道支持率的至少一个业务指标子任务后。 某个渠道对应的业务指 标子任务的计算量仍然过大, 则在本发明的实施例中, 还可以进一步按照交易对象字段将 计算某一单一渠道支持率的业务指标子任务进一步拆分成多个子任务, 其中给每个子任务 对应一个渠。

38、道值和交易对象取值的组合。 0080 步骤203: 获取可用的任务执行器的标识信息。 0081 如前所述, 任务执行器101只有在在任务执行器管理器102进行注册后才能作为可 用的任务执行器执行任务。 并且任务执行器管理器102中将记录当前可用的任务执行器的 标识信息。 0082 在本发明的实施例中, 上述任务执行器的标识信息包括: 任务执行器的设备ID。 此 外, 上述任务执行器的标识信息还可以进一步包括: 任务执行器中的应用ID和/或进程ID。 0083 如此, 在上述步骤中, 任务分配器可以从任务执行器管理器102获取可用的任务执 行器的标识信息。 0084 步骤204: 将上述至少一个。

39、业务指标子任务在上述可用的任务执行器中进行分配, 确定执行各个业务指标子任务的任务执行器的标识信息。 0085 在本发明的实施例中, 将上述至少一个业务指标子任务在上述当前可用的任务执 行器中进行分配包括: 建立业务指标子任务的任务标识与任务执行器标识信息的对应关 系, 其中一个任务执行器标识信息对应一个或多个业务指标子任务的任务标识。 0086 在本发明的实施例中, 可以采用多种方法实现上述业务指标子任务的分配, 例如 可以利用MD5、 哈希(Hash)等散列算法等进行业务指标子任务的分配。 0087 图3显示了采用哈希算法对业务指标子任务进行分配的流程示意图。 如图3所示, 该方法包括: 。

40、0088 步骤301: 获取业务指标子任务的任务标识。 说明书 6/10 页 10 CN 110659117 A 10 0089 如前所述, 上述任务标识是对业务指标任务进行拆分时所依据的数据字段的取 值。 0090 步骤302: 计算上述任务标识的哈希值。 0091 在本发明的实施例中, 利用哈希算法, 可以将任务标识转换成长度固定的哈希值。 上述哈希值也可以认为是任务标识的一个散列值。 0092 步骤303: 根据上述任务标识的哈希值与可用的任务执行器标识信息的数量建立 任务标识和任务执行器的标识信息之间的对应关系。 0093 在本发明的实施例中, 可以首先以可用的任务执行器标识信息的数量。

41、作为除数求 上述任务标识的哈希值的除以上述数量后的余数; 然后, 分别将每个余数对应一个任务执 行器标识信息; 最后, 按照上述余数值和任务执行器标识信息的对应关系, 建立任务标识和 任务执行器标识信息的对应关系。 例如, 当前有30个业务指标子任务, 且任务执行器标识信 息的数量为10, 则通过上述步骤302可以得到30个哈希值, 然后, 在本步骤中, 可以分别求上 述30个哈希值除以10后的余数, 并按照余数与任务执行器标识信息的对应关系, 建立30个 业务指标子任务和任务执行器标识信息的对应关系; 其中, 每一个余数值对应一个任务执 行器标识信息。 0094 需要说明的是, 采用MD5算。

42、法进行业务指标子任务的分配也可以参考上述图3所示 的方法, 例如, 可以用MD5算法替代哈希算法, 也即对上述任务标识进行MD5运算, 并将得到 的散列值替代上述图3中的哈希值。 0095 通过上述MD5或者哈希算法等子任务分配方法, 可以基本上实现各种业务指标子 任务在各个任务执行器之间的均衡分配。 0096 更进一步, 还可以在上述业务指标子任务的任务标识之前加入相同的前缀, 使得 上述子任务分配方法更加均衡。 0097 步骤205: 将执行各个业务指标子任务的任务执行器的标识信息输出到任务管理 器103。 0098 在本发明的实施例中, 上述任务管理器103可以是数据存储设备或者数据库,。

43、 可以 用于存储上述任务执行器上传的业务指标子任务的任务标识与任务执行器标识信息的对 应关系。 0099 在本发明的实施例中, 上述任务分配器进行业务指标任务调度的方法还可以进一 步包括: 0100 步骤206: 获取上述任务执行器对上述业务指标子任务的执行结果。 0101 由于各个任务执行器101的执行结果还将反馈至任务管理器103, 由任务管理器 103记录各个任务执行器101的执行结果。 则在本发明的实施例中, 上述任务分配器还可以 从任务管理器103获取各个任务执行器101对分配给其自身的业务指标子任务的执行结果。 0102 步骤207: 合并上述执行结果得到上述业务指标任务的执行结果。

44、, 并输出。 0103 在本发明的实施例中, 上述任务分配器可以将上述执行结果进行直接合并, 得到 上述业务指标任务的执行结果, 并将上述执行结果以显示或者生成报告的方式输出给业务 方。 0104 如前所述, 上述任务分配器可以由多个任务执行器101之一实现。 然而, 为了避免 单点故障, 导致整个系统的崩溃, 本发明的实施例可以每隔预定的时间重新确定实现任务 说明书 7/10 页 11 CN 110659117 A 11 分配器的任务执行器101, 也即在本发明的实施例中可以定时更换实现任务分配器的任务 执行器101。 0105 在本发明的实施例中, 可以在上述多个任务执行器101上分别配置。

45、相同的任务分 配者定时任务。 上述多个任务执行器101定时调度上述任务分配者任务, 确定自身是否为任 务分配者。 也即通过上述任务分配者定时任务从上述多个任务执行器101中确定实现任务 分配器的任务执行器101。 上述定时调度例如可以是每分钟调度一次上述任务分配者任务。 0106 在本发明的实施例中, 还可以设置单独的计算设备, 并在该计算设备上配置任务 分配者定时任务, 由该计算设备定时调度任务分配者任务, 从上述多个任务执行器101中确 定实现任务分配器的任务执行器101, 并触发确定的实现任务分配器的任务执行器101实现 任务分配器的功能。 上述定时调度例如可以是每分钟调度一次上述任务分。

46、配者任务。 0107 在本发明的实施例中, 还可以设置抢 “锁” 机制, 由上述多个任务执行器101定时进 行抢 “锁” , 抢到 “锁” 的任务执行器101将作为任务分配器实现任务分配器的功能。 0108 图4显示了本发明实施例所述的业务指标任务调度系统100中多个任务执行器101 之一执行业务指标任务的方法。 如图4所示, 该方法包括: 0109 步骤401: 根据预定的时间间隔, 定时向任务执行器管理器102注册。 0110 在本发明的实施例中, 上述注册包括定时向任务执行器管理器102发送心跳信号; 其中, 上述心跳信号包括: 自身的标识信息。 0111 步骤402: 根据自身的标识信。

47、息, 从任务管理器103拉取分配给自身的业务指标子 任务。 0112 步骤403: 执行分配给自身的业务指标子任务。 0113 步骤404: 将业务指标子任务的执行结果反馈至任务管理器103。 0114 在本发明的实施例中, 上述任务执行器101在执行分配给自身的业务指标子任务 之前还可以进一步对自身的未完成任务以及自身的空闲资源进行检查, 确定分配给自身的 业务指标子任务的预计完成情况, 并将预计执行情况反馈至任务管理器103。 0115 在这种情况下, 作为任务分配器的任务执行器101将获取各个任务执行器101反馈 的业务指标子任务的预计完成情况, 并根据业务指标子任务的预计完成情况调整业。

48、务指标 子任务的分配。 例如, 如从业务指标子任务的预计完成情况发现某个任务执行器101的任务 已经有积压, 则可以将分配给该任务执行器101的业务指标子任务重新分配给其他任务执 行器101。 0116 在本发明的实施例中, 上述任务执行器101还提供自定义函数(UDF)接口, 支持用 户上传UDF。 上述任务执行器101还支持参数配置, 例如根据用户的配置设置执行每个子任 务的最大线程数、 重复执行次数等等参数。 0117 由此可以看出, 通过上述业务指标任务调度和执行方法可以将业务方自定义的业 务指标任务拆分成多个子任务, 并将子任务均衡地分配至系统中的多个任务执行器执行。 这样, 即使业。

49、务指标需要计算的内容不断地扩展或者获得业务指标相关数据的渠道和维度 的不断增加, 也可以基本确保每个子任务的计算量在任务执行器可执行的范围内, 从而避 免任务的积压或者内存被打爆的情况, 从而提高系统效率, 满足业务方的需求。 0118 图5显示了本发明实施例所述的任务分配器的内部结构。 如图5所示, 任务分配器 主要包括: 说明书 8/10 页 12 CN 110659117 A 12 0119 配置模块501, 用于确定作为任务拆分依据的一个或多个数据字段; 0120 任务拆分模块502, 用于根据上述数据字段对待计算的业务指标任务进行拆分, 得 到至少一个业务指标子任务; 0121 标识。

50、获取模块503, 用于获取可用的任务执行器的标识信息; 0122 分配模块504, 用于将上述至少一个业务指标子任务在上述可用的任务执行器中 进行分配, 确定执行各个业务指标子任务的任务执行器的标识信息; 0123 记录模块505, 用于将执行各个业务指标子任务的任务执行器的标识信息记录在 任务管理器中。 0124 在本发明的实施例中, 上述分配模块504包括: 0125 子任务标识获取单元5041, 用于获取业务指标子任务的任务标识; 0126 散列值计算单元5042, 用于计算上述任务标识的散列值; 0127 分配单元5043, 用于根据上述任务标识的散列值与可用的任务执行器标识信息的 数。

展开阅读全文
内容关键字: 业务 指标 任务 调度 执行 方法 装置 系统 存储 介质
关于本文
本文标题:业务指标任务调度及执行方法、装置、系统及存储介质.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/11086487.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1