一种基于Quartz定时任务的领域任务实时调度方法技术

技术编号:32230746 阅读:38 留言:0更新日期:2022-02-09 17:35
本发明专利技术涉及一种基于Quartz定时任务的领域任务实时调度方法,包括以下步骤:S1、通过初始化配置表,以配置定时任务,得到定时任务配置表;S2、构建多线程定时任务核心引擎;S3、通过遍历定时任务配置表,以创建定时任务;S4、远程调用定时任务对应的服务,并记录定时任务相应的执行数据,之后返回步骤S3,直至遍历完定时任务配置表中所有配置信息。与现有技术相比,本发明专利技术基于Quartz框架,通过定时任务配置表,采用Redis分布式锁规避多个定时任务争抢资源的问题;并运用RestTemplate结合定时任务配置表的方式,能够有效可靠地实现定时任务的灵活配置和领域任务的实时调度。灵活配置和领域任务的实时调度。灵活配置和领域任务的实时调度。

【技术实现步骤摘要】
一种基于Quartz定时任务的领域任务实时调度方法


[0001]本专利技术涉及任务调度
,尤其是涉及一种基于Quartz定时任务的领域任务实时调度方法。

技术介绍

[0002]预审系统作为信用卡中心获客信审条线的桥头堡,涉及业务广泛且复杂,通常需要采用先进的领域驱动设计理念构建微服务系统,从而定时执行特定任务,实现业务目标,即需要借助定时任务在特定的时间或以特定的时间速率完成特定的任务,比如每隔一分钟将指纹设备数据送运营、每隔一分钟获取网申行为轨迹数据、每三分钟执行VIP队列异常重发、凌晨四点执行重复申请hold件下发任务等等。
[0003]现有的预审系统大多采用SpringCloud技术构建微服务,以实现领域服务的低耦合,各领域服务之间通过openfeign实现调用,赋能领域原子服务复用。系统采用集群方式部署,定时任务服务也随之会在多个节点启动,容易存在重复执行作业任务的情形,定时任务有时还需要承担调用领域任务的职责,也就无法灵活配置定时任务、不能实时调度领域任务。

技术实现思路

[0004]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于Quartz定时任务的领域任务实时调度方法,以避免重复执行任务,实现领域任务的实时调度。
[0005]本专利技术的目的可以通过以下技术方案来实现:一种基于Quartz定时任务的领域任务实时调度方法,包括以下步骤:
[0006]S1、通过初始化配置表,以配置定时任务,得到定时任务配置表;
[0007]S2、构建多线程定时任务核心引擎;
[0008]S3、通过遍历定时任务配置表,以创建定时任务;
[0009]S4、远程调用定时任务对应的服务,并记录定时任务相应的执行数据,之后返回步骤S3,直至遍历完定时任务配置表中所有配置信息。
[0010]进一步地,所述步骤S1中初始化配置表具体是在定时任务配置表中配置定时任务相应的核心字段。
[0011]进一步地,所述核心字段包括任务描述、CRON表达式、任务组名称、任务名称、状态、调度路径、网关路径、业务参数、Redis锁时间、Redis锁的key。
[0012]进一步地,所述状态对应的数值包括N和Y,其中,N为禁用状态,Y为启用状态;
[0013]所述Redis锁时间的单位设定为秒。
[0014]进一步地,所述步骤S2具体包括以下步骤:
[0015]S21、构造线程池调度器;
[0016]S22、将定时器注册器注入线程池调度器。
[0017]进一步地,所述步骤S3的具体过程为:
[0018]获取定时任务配置表,逐条遍历配置信息,针对每条配置信息,通过进行第一条件判断、第二条件判断、第三条件判断、第四条件判断、第五条件判断和第六条件判断,以创建定时任务。
[0019]进一步地,所述第一条件判断具体为:判断是否需要继续遍历,若判断为是,则执行第二条件判断,否则结束遍历过程;
[0020]所述第二条件判断具体为:判断配置信息是否为空,若判断为是,则返回遍历下一条配置信息,否则执行第三条件判断;
[0021]所述第三条件判断具体为:判断配置的定时任务是否已经在调度任务中存在,若判断为是,则执行第四条件判断,否则创建新的定时任务。
[0022]进一步地,所述第四条件判断具体为:判断配置的定时任务是否为禁用状态,若判断为是,则返回遍历下一条配置信息,否则执行第五条件判断;
[0023]所述第五条件判断具体为:判断是否有任务实例存在,若判断为是,则执行第六条件判断,否则删除已有的定时任务、创建新的定时任务;
[0024]所述第六条件判断具体为:判断任务实例是否发生变化,若判断为是,则删除已有的定时任务、创建新的定时任务,否则返回遍历下一条配置信息。
[0025]进一步地,所述步骤S4具体包括以下步骤:
[0026]S41、根据创建的新的定时任务,从定时任务配置表中获取对应的Redis锁key,若获取成功,则执行步骤S42,否则返回遍历下一条配置信息;
[0027]S42、执行远程服务调用定时任务配置表中配置的服务,并将调用结果以及定时任务的执行结果记录于日志表中;
[0028]S43、释放Redis锁,之后返回遍历下一条配置信息。
[0029]进一步地,所述步骤S42具体是通过RestTemplate远程服务调用定时任务配置表里配置的服务URL,发起http请求、完成Post调用,通过判断响应结果确定调用成功与否,并在定时调度日志表中新增日志,以记录定时任务的执行结果。
[0030]与现有技术相比,本专利技术具有以下优点:
[0031]一、本专利技术基于Quartz框架,结合Redis分布式锁,通过在定时任务配置表中配置定时任务,能够在分布式微服务架构下实现多任务节点并发启动,从而避免发生重复执行任务的现象、规避多个定时任务争抢资源的问题。
[0032]二、本专利技术通过遍历定时任务配置表中的配置信息,结合设定的多个条件判断,以保证定时任务创建的准确性和可靠性,同时结合远程服务调用,不仅能够实现定时任务的灵活配置,同时保证了领域任务的实时调度。
附图说明
[0033]图1为本专利技术的方法流程示意图;
[0034]图2为实施例的应用过程示意图;
[0035]图3为实施例中对应的时序图;
[0036]图4为实施例中对应的类图。
具体实施方式
[0037]下面结合附图和具体实施例对本专利技术进行详细说明。
[0038]实施例
[0039]Quartz是OpenSymphony开源组织在Jobscheduling领域又一开源项目,它可以与J2EE与J2SE应用程序相结合,也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或EJBs。
[0040]Quartz框架的核心是调度器。调度器负责管理Quartz的应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是Quartz怎样能并发运行多个作业的原理。Quartz依赖一套松耦合的线程池管理部件来管理线程环境。
[0041]本技术方案借助Quartz框架,提出了一种基于Quartz的定时任务,以实现领域任务实时调度的解决方案。
[0042]如图1所示,一种基于Quartz定时任务的领域任务实时调度方法,包括以下步骤:
[0043]S1、通过初始化配置表,以配置定时任务,得到定时任务配置表,其中,初始化配置表具体是在定时任务配置表中配置定时任务相应的核心字段,核心字段包括任务描述、CRON表达式、任务组名称、任务名称、状态(对应的数值包括N本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Quartz定时任务的领域任务实时调度方法,其特征在于,包括以下步骤:S1、通过初始化配置表,以配置定时任务,得到定时任务配置表;S2、构建多线程定时任务核心引擎;S3、通过遍历定时任务配置表,以创建定时任务;S4、远程调用定时任务对应的服务,并记录定时任务相应的执行数据,之后返回步骤S3,直至遍历完定时任务配置表中所有配置信息。2.根据权利要求1所述的一种基于Quartz定时任务的领域任务实时调度方法,其特征在于,所述步骤S1中初始化配置表具体是在定时任务配置表中配置定时任务相应的核心字段。3.根据权利要求2所述的一种基于Quartz定时任务的领域任务实时调度方法,其特征在于,所述核心字段包括任务描述、CRON表达式、任务组名称、任务名称、状态、调度路径、网关路径、业务参数、Redis锁时间、Redis锁的key。4.根据权利要求3所述的一种基于Quartz定时任务的领域任务实时调度方法,其特征在于,所述状态对应的数值包括N和Y,其中,N为禁用状态,Y为启用状态;所述Redis锁时间的单位设定为秒。5.根据权利要求1所述的一种基于Quartz定时任务的领域任务实时调度方法,其特征在于,所述步骤S2具体包括以下步骤:S21、构造线程池调度器;S22、将定时器注册器注入线程池调度器。6.根据权利要求4所述的一种基于Quartz定时任务的领域任务实时调度方法,其特征在于,所述步骤S3的具体过程为:获取定时任务配置表,逐条遍历配置信息,针对每条配置信息,通过进行第一条件判断、第二条件判断、第三条件判断、第四条件判断、第五条件判断和第六条件判断,以创建定时任务。7.根据权利要求6所述的一种基于Quartz定时任务的领域任务实时调度方法,其特征在于,所述第一条件判断具体为:判断...

【专利技术属性】
技术研发人员:朱利鸽
申请(专利权)人:上海浦东发展银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1