一种定时任务管理系统

文档序号:7177 发布日期:2021-09-17 浏览:33次 英文

一种定时任务管理系统

技术领域

本发明属于任务管理

技术领域

,具体涉及一种定时任务管理系统。

背景技术

目前在各种开发项目中,需要接入多种数据,数据源各不相同,且数据量规模相当庞大,需要对不同的数据,进行不同的数据获取、处理等操作,每种数据通过不同的定时任务执行处理,要求定时任务随时增加、删除、修改,即时生效,无需重启操作,且支持定时任务数据源、执行频率等配置修改,可以一定程度上对定时任务进行配置管理。

现有的技术方案是通过应用硬代码增加、删除、修改定时任务,需要重新编译、部署项目。需要编写不同的执行频率,或者是使用通用的类型处理模块,不能使用不同的执行频率,同类型任务使用同频率执行,这是代码复用性上的缺陷,且定时任务的修改、删除,需要硬代码编写内容,需要重新编译、部署、重启应用才能生效,配置不灵活,耗时耗力。

发明内容

为了解决现有技术存在的配置不够灵活、耗时耗力、操作繁琐的问题,本发明提供了一种定时任务管理系统,其具有配置更加灵活、更加省时省力等特点。

根据本发明的

具体实施方式

的一种定时任务管理系统,包括:页面配置模块、任务生产模块、消息模块和任务消费模块;

所述页面配置模块用于基于用户的配置信息配置不同的定时任务策略,并将所述定时任务策略写入策略表中;

所述任务生产模块用于对所述策略表进行实施的监听,并基于所述定时任务策略生成对应的任务计划;

所述消息模块用于所述任务计划的延迟推送以保证任务执行的性能;

所述任务消费模块用于将所述任务计划路由到相应的处理模块进行定时任务的执行。

进一步地,所述用户的配置信息包括:定时任务的增加、修改、删除和启停操作。

进一步地,所述任务生产模块还用于在任务表中的所述任务计划条数小于3条时,将相应的任务计划写入所述消息模块并将执行频率设置为消息过期时间。

进一步地,所述任务生产模块还用于在任务表中的所述任务计划条数不小于3条时,对当前策略不生成新的定时任务计划。

进一步地,所述消息模块还用于在所述任务计划过期后,将相应的过期消息发送至死信交换机,所述死信交换机用于将过期消息转发到对应的消息队列供消费者消费。

本发明的有益效果为:通过页面配置模块基于用户的配置信息配置不同的定时任务策略,并将定时任务策略写入策略表中,用户只用关心业务层面进行配置,不用再关心底层代码的实现,有着良好的用户体验;任务生产模块对策略表进行实施的监听,并基于定时任务策略生成对应的任务计划,剥离了定时任务的业务逻辑和代码逻辑的关联,实现配置即生效;消息模块任务计划的延迟推送以保证任务执行的性能,支持大量的不同周期定时任务,且支持到秒级;任务消费模块用于将任务计划路由到相应的处理模块进行定时任务的执行。实现了定时任务管理的配置更加的灵活,更加的节省时间,在高度灵活的定时任务管理下,实现多类型多任务任意周期的定时任务执行。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一示例性实施例提供的定时任务管理系统的原理图。

1-页面配置模块;2-任务生产模块;3-消息模块;4-任务消费模块。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

参照图1所示,本发明的实施例提供了一种定时任务管理系统,具体包括:

页面配置模块1、任务生产模块2、消息模块3和任务消费模块4;

页面配置模块1用于基于用户的配置信息配置不同的定时任务策略,并将定时任务策略写入策略表中;通过页面进行定时任务的增加、修改、删除、启停等一系列管理,大大降低用户对定时任务管理的门槛,用户只用关心业务层面进行配置,不用再关心底层代码的实现,有着良好的用户体验;

任务生产模块2用于对策略表进行实施的监听,并基于定时任务策略生成对应的任务计划;对配置好的任务策略进行监听,并实时生成对应的任务计划,剥离了定时任务的业务逻辑和代码逻辑的关联,实现配置即生效,更加关注任务生成,而无需关心业务规则和处理模块;

消息模块3用于任务计划的延迟推送以保证任务执行的性能;利用rabbitMQ的消费队列的时效性,实现了延迟队列,在当前定时任务的场景下,完美匹配生产需求,支持大量的不同周期定时任务,且支持到秒级。

任务消费模块4用于将任务计划路由到相应的处理模块进行定时任务的执行。通过监听任务计划,并将任务计划路由到不同类型的处理模块,完成定时任务的执行。

通过设计实现的定时任务管理器,利用巧妙的定时执行设计,满足现有生产复杂的场景需求,高度灵活的定时任务配置管理,支持对任务的各种操作且即时生效,用户无需关注代码的实现逻辑,只需关注业务配置即可,且对用户来说,配置即生效,无需任何其他操作,在高度灵活的定时任务管理下,实现多类型多任务任意周期的定时任务执行。

作为上述实施例可行的实现方式,用户通过页面配置模块,配置不同的定时任务策略,系统会将定时任务策略写入策略表中;任务生产模块会每秒实时获取策略表的策略,通过判断当前策略是否在任务表中有小于3条对应的任务计划,若是,生成对应的定时任务计划,写入任务表,同时会将任务计划写入rabbitMQ的延迟队列,且将执行频率设置为消息过期时间;若否,则当前策略不生成新的定时任务计划。当延迟队列的任务计划消息过期后,延迟队列会将消息发送到死信交换机,死信交换机会将过期消息转发到对应的消息模块,供消费者消费,每种类型都会有对应的延迟队列和消费队列,保证任务执行的性能;任务消费模块消费队列的消息(定时任务计划),并路由到对应的类型处理模块,执行处理,并将执行结果回写到任务表中。

其中rabbitMQ包含延迟队列、死信交换机、消费队列,MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。而rabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。

本发明上述实施例所提供的定时任务管理系统,可高度灵活的定时任务配置管理,包括任务的增加、修改、删除、启停等,即时生效;对定时任务内容、执行频率等修改支撑,即时生效;支持定时任务执行频率精确到秒级,并支持任意周期;定时任务流程独特的异步设计,剥离业务逻辑和代码逻辑;高度抽象化处理模块,兼容多任务处理;支持不同类型任务添加从而实现定时任务场景的巧妙设计实现。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种可视化服务编排方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!