[发明专利]基于解耦任务数据模型的任务流调度方法与系统有效
申请号: | 202011081551.7 | 申请日: | 2020-10-12 |
公开(公告)号: | CN111930492B | 公开(公告)日: | 2021-01-19 |
发明(设计)人: | 殷庆荣;谢峥;高庆官;唐海均;王国伟 | 申请(专利权)人: | 南京赛宁信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 孟红梅 |
地址: | 211100 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 任务 数据模型 调度 方法 系统 | ||
1.一种基于解耦任务数据模型的任务流调度方法,其特征在于,对于参与任务流调度的单个任务数据模型定义驱动任务的通信协议、任务输入输出数据格式、后继任务节点及其使用的协议处理器、任务幂等编号、任务在整个任务流中的编号、任务调度超时时间、任务失败处理机制、任务输出数据以及任务状态查询接口;对于任务流数据模型定义全局唯一的分布式锁,以及任务流中第一个任务的初始化输入数据;所述任务流调度方法包括:
步骤1:由同一任务流的所有调度节点周期性竞争该任务流的分布式锁,成功竞争到分布式锁的调度节点执行步骤2;未取得分布式锁的调度节点结束本轮调度;
步骤2:获取任务流已执行完成的最大任务编号,如果最大任务编号对应最后一个任务,标记任务流调度完成,释放分布式锁,结束;否则获取最大任务编号对应的已完成任务A的信息,执行步骤3;
步骤3:获取已完成任务A的后继任务作为调度任务B,根据任务B的幂等编号查看其是否已被触发,如果已触发且调度时间未超时,说明任务B正在执行中,执行步骤4;否则执行步骤5;
步骤4:根据任务B定义中的任务状态查询接口查询任务状态,如果任务B已经执行完毕,获取任务B的输出结果并保存;标记任务B为完成状态,结束本轮任务调度,释放分布式锁;
步骤5:如果任务B超时,重新触发任务B执行;如果任务B未被触发,触发任务B执行; 触发或重新触发任务B时,加载通信协议框架,将任务A的输出数据经协议处理器转换后,作为触发任务B的输入数据;
步骤6:根据幂等编号,生成任务B调度记录、设置或重置调度超时时间;
步骤7:根据任务B的反馈结果判断任务B是否成功触发,若成功触发则结束本轮调度,释放分布式锁,否则执行步骤8;
步骤8:回滚步骤6中的调度记录,释放分布式锁,并根据任务的失败处理机制,决定是否需重新调度;如需重新调度则放弃本次调度,等待下一轮调度任务触发;如不需要重新调度,设置任务流状态为失败,结束当前任务流调度。
2.根据权利要求1所述的基于解耦任务数据模型的任务流调度方法,其特征在于,所述任务流中的任务分布在异构网络环境中。
3.根据权利要求1所述的基于解耦任务数据模型的任务流调度方法,其特征在于,任务流的调度节点和执行任务的计算节点间的驱动任务的通信协议为HTTP或TCP。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京赛宁信息技术有限公司,未经南京赛宁信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011081551.7/1.html,转载请声明来源钻瓜专利网。