[发明专利]一种基于ORACLE定时任务的多任务多线程调度方法在审
| 申请号: | 202211300439.7 | 申请日: | 2022-10-20 |
| 公开(公告)号: | CN115617481A | 公开(公告)日: | 2023-01-17 |
| 发明(设计)人: | 黄融;杨志文;孙志磊;褚良凤 | 申请(专利权)人: | 武汉众邦银行股份有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
| 代理公司: | 成都正煜知识产权代理事务所(普通合伙) 51312 | 代理人: | 袁宇霞 |
| 地址: | 432200 湖北省武汉市黄陂区盘龙城经济开发区汉*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 oracle 定时 任务 多线程 调度 方法 | ||
1.一种基于ORACLE定时任务的多任务多线程调度方法,其特征在于:
步骤1、基本参数配置表的设定,设置标准任务配置表,任务分段参数表,任务依赖关系配置表,其中,
标准任务配置表中设置任务编号,任务名称,包含具体业务逻辑处理的执行的存储过程,最大并发数;
任务分段参数表中设置任务编号,任务名称,任务分段数,任务分段标志,任务分段规则,任务分段区间;
任务依赖关系配置表中设置任务编号,上级依赖任务编号;
步骤2、涉及的业务表有:
批量线程登记表,运行期任务处理登记表,运行期任务处理分段登记表,任务依赖关系中间表,系统表;
步骤3、开始处理批量任务,启动主线程定时任务,主线程定时任务启动后异步处理主线程逻辑,对任务进行分段,异步处理具体业务逻辑;
步骤4、删除批量线程登记表中任务ID为99999999的记录;
步骤5、往批量线程登记表中插入任务ID为99999999,线程ID为主线程ID的记录并提交;
步骤6、异步线程将所有任务处理完毕,结束。
2.根据权利要求1所述的一种基于ORACLE定时任务的多任务多线程调度方法,其特征在于,步骤3包括以下步骤:
步骤3-1、开始异步处理主线程逻辑,首先判断锁ID为999999999的oracle用户锁是否存在,如存在则提示主线程正在处理中,不能重复提交,否则申请锁ID为999999999的oracle用户锁;
步骤3-2、更新当前会话信息为支持分段并行查询及支持分段并行增删改查;
步骤3-3、准备分段任务,更新系统表中当前批量任务分段状态为“S-批量任务分段开始”;
步骤3-3、将上一次的批量任务处理数据备份至运行期任务处理分段登记历史表中;
步骤3-4、备份完成后删除运行期任务处理登记表及运行期任务处理分段登记表中的上一次的批量任务处理的数据;
步骤3-5、轮询标准任务配置表中的任务,列出当日需要执行的任务登记至运行期任务处理登记表中;
步骤3-6、清理并删除任务依赖关系中间表的数据,根据任务依赖关系配置表的设置,重新将当前依赖关系插入到任务依赖关系中间表中;
步骤3-7、轮询处理运行期任务处理登记表中处理状态为“N-未处理”的当日需要执行的任务,将当日需要执行的任务分段登记至运行期任务处理分段登记表中;
步骤3-8、任务分段完成后,更新当前批量任务分段状态为“Y-批量任务分段执行成功“;
步骤3-9、开启WHILE TRUE无限循环模式,轮询运行期任务处理分段登记表中处理状态为“N-未处理”,运行状态为“N-未运行的任务”,在该轮询中产生异步多个线程来执行任务对应的存储过程,完成具体业务逻辑处理;
步骤3-10、检查所有的任务是否都已执行完成,如全部执行完成,退出无限循环模式,否则继续轮询;
步骤3-11、所有的任务都执行完成后,释放主线程锁ID为999999999的oracle用户锁。
3.根据权利要求1所述的一种基于ORACLE定时任务的多任务多线程调度方法,其特征在于,步骤3-5包括以下步骤:
步骤3-5-1、开始轮询标准任务配置表中的任务,将当日需要执行的任务插入到运行期任务处理登记表中,并将处理状态置为“N-未处理”;
步骤3-5-2、轮询完所有标准任务配置表中的任务后,结束轮询。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉众邦银行股份有限公司,未经武汉众邦银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211300439.7/1.html,转载请声明来源钻瓜专利网。





