[发明专利]一种基于RPC及线程锁的分布式定时任务调度方法有效
| 申请号: | 202010615472.3 | 申请日: | 2020-06-25 |
| 公开(公告)号: | CN111752696B | 公开(公告)日: | 2023-09-12 |
| 发明(设计)人: | 严东;李耀;田骏;彭磊;杨志文 | 申请(专利权)人: | 武汉众邦银行股份有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/54 |
| 代理公司: | 成都正煜知识产权代理事务所(普通合伙) 51312 | 代理人: | 李龙 |
| 地址: | 432200 湖北省武汉市黄陂区盘龙城经济开发区汉*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 rpc 线程 分布式 定时 任务 调度 方法 | ||
1.一种基于RPC及线程锁的分布式定时任务调度方法,其特征在于,包括以下步骤:
步骤1:新建定时任务执行器,得到任务执行器JobHandler,在任务执行器中开发job类,job类中定义了定时任务的时间表达式、定时任务的具体执行方法、定时任务的返回结果集,并最终得到处理结果;
步骤2:在调度中心里,新建调度任务,调度任务用于定义调度的方法名称、时间、对应的job类、调度的超时时间、失败后的处理方式;
步骤3:调度中心的调度任务通过已注册的各任务执行器上报任务,将调度任务存到数据库中,执行时会从数据库中取出调度任务,执行具体任务;
步骤4:任务执行器采取集群部署,调度中心会感知在线的所有执行器,每次请求时,会按照顺序对执行器发出RPC心跳检测请求,第一个检测为存活状态的执行器会被选定并发送调度请求;
步骤5:任务执行器接收到调度请求后,会根据调度请求实例化一个任务线程,执行任务线程中具体的作业程序处理方法,成功后返回SUCCESS响应消息;
步骤6:调度时,会在日志中心记录一条任务日志,包括任务信息、调度信息、执行信息,任务日志可在日志中心按照日期和状态检索查看并得知定时任务执行结果,至此,整个调度任务周期结束;
调度相应的调度任务时,采用线程池方式实现,执行时取出线程并加锁,避免线程被占用而引起阻塞,具体包括以下步骤:
步骤A.1:调度中心添加一个已上报的定时调度任务到quartz中,quartz是一个完全由Java编写的开源作业调度框架;
步骤A.2:quartz通过快慢线程池去执行已实例化的触发器,1分钟内若有10次运行超过500ms就会启动慢线程池,否则就进入快线程池;
步骤A.3:通过定时调度任务在实例化时由调度中心分配的任务ID字段查询数据库中保存的定时任务信息,将任务实例装载到线程池中,并调用执行触发程序;
步骤A.4:从数据库中获取任务的线程阻塞策略,默认是serial execution串行执行,根据任务ID对定时任务执行线程加锁,并继续递交给执行器执行。
2.根据权利要求1所述的一种基于RPC及线程锁的分布式定时任务调度方法,其特征在于,步骤1具体包括:
步骤1.1:使用spring容器环境新建定时任务执行器,执行器的配置文件需定义任务执行器名称,所在服务器的ip地址和自定义端口;
步骤1.2:在spring bean实例中,开发job方法,此job方法的Java类格式要求为”public ReturnTString execute(String param)”;
步骤1.3:为job方法添加注解”@Job(value=”自定义的jobhandler名称,init=”JobHandler初始化方法”,destroy=”JobHandler销毁方法”)”,该注解可以在执行类启动时,在Java虚拟机中自动识别并按照注解的定义来初始化和销毁执行方法,注解value值对应的是调度中心新建调度任务的名称,init对应调度任务的初始化方法,destroy对应调度任务的销毁方法;
步骤1.4:配置完成后,Java虚拟机会根据注解信息生成作业处理程序,通过调度中心新建的任务也会以作业处理程序的形式存在于任务执行器中,Java虚拟机会扫描步骤1.3中添加的注解,发现任务并注入到执行容器中。
3.根据权利要求1所述的一种基于RPC及线程锁的分布式定时任务调度方法,其特征在于,步骤2具体包括:
步骤2.1:进入调度中心,在任务执行器中选择步骤1中定义的执行器名称,任务描述简述定时任务的执行目的,定时任务的阻塞策略,cron定义定时任务的定时执行时间规则,定义执行器中的任务方法名称;
步骤2.2:配置完成并保存后,此调度任务会在数据库新增一条定时任务信息,定时调度任务新增成功。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉众邦银行股份有限公司,未经武汉众邦银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010615472.3/1.html,转载请声明来源钻瓜专利网。





