掌桥专利:专业的专利平台
掌桥专利
首页

轻量级任务触发系统及业务生态系统

文献发布时间:2023-06-19 12:18:04


轻量级任务触发系统及业务生态系统

技术领域

本发明涉及计算机控制技术领域,尤其涉及一种轻量级任务触发系统及业务生态系统。

背景技术

随着业务的发展,业务系统出现了需要将定时任务进行调度的场景,例如在X天后关闭订单、商品的有效期为X天,在X天后商品自动下架等。

刚开始机器作为单节点服务时,诸如此类的功能都能直接通过编码的方式放在一个服务中。但是随着业务的扩大势必需要将一个服务作为多个节点部署从而形成分布式的架构。此时,因为所有的服务都存在相同的任务调度,所以势必产生问题。因此,势必需要一个适用于集群的、同时也是轻量级的分布式任务调度中心系统来解决上述问题。

目前,市场上存在的所有分布式任务调度中心系统,其解决问题的大体思路均是分为调度和执行两个部分,也就是说系统不仅仅要关心某个任务在某个时间应当执行了,还要切实得去执行该任务。具体地,现有的分布式任务调度中心系统(如大众点评的XXL-JOB、当当网的Elastic-Job)从架构上包括调度中心和执行器,在系统的工作过程中,调度中心用于向执行器发送定时提醒任务信息,执行器接收到该定时提醒任务信息后直接执行自身设置的与该定时提醒任务信息对应的业务逻辑。因此随着业务量的增加,执行器的压力会不断增大,此时业务系统的处理能力势必受到分布式任务调度中心系统的肘制,从而极大地降低了系统的执行效率。

发明内容

鉴于背景技术中存在的问题,本发明的目的在于提供一种轻量级任务触发系统及业务生态系统,所述轻量级任务触发系统只是触发业务系统去执行任务、而不参与任务的实际执行过程,其极大地减轻了轻量级任务触发系统自身的负担、高效地运用了业务系统自身的业务执行能力,从而有利于整个系统的轻量化设计、降低了系统内存消耗和运维成本。

为了实现上述目的,本发明提供了一种轻量级任务触发系统,其与业务系统通信连接,所述业务系统设置有多个业务逻辑。其中,所述轻量级任务触发系统包括任务创建服务单元、数据库、任务管理单元、任务扫描器、任务资源池和任务触发器。所述任务创建服务单元通信连接于所述数据库,所述任务创建服务单元用于创建定时提醒任务、并将所述定时提醒任务上传至所述数据库中。所述任务管理单元通信连接于所述数据库、并用于管理所述数据库中的全部定时提醒任务。所述任务扫描器通信连接于所述数据库,所述任务扫描器用于对所述数据库中的全部定时提醒任务进行扫描、并将特定时间段内需要执行的定时提醒任务发送至所述任务资源池。所述任务触发器通信连接于所述任务资源池,所述任务触发器设置为按照时间先后顺序将定时提醒任务依次从所述任务资源池中取出并发送给所述业务系统,以触发所述业务系统执行与定时提醒任务对应的业务逻辑。

在根据一些实施例的轻量级任务触发系统中,所述数据库包括任务类型表、任务总表和corn任务表。

在根据一些实施例的轻量级任务触发系统中,所述任务管理单元包括任务类型管理、总任务管理和corn任务管理。

在根据一些实施例的轻量级任务触发系统中,所述数据库的任务总表包括多个任务分表。所述轻量级任务触发系统还包括任务调配单元,所述任务调配单元通信连接于所述任务扫描器、并通过分表逻辑计算确定任务扫描器要扫描的任务分表。

在根据一些实施例的轻量级任务触发系统中,所述轻量级任务触发系统还包括任务创建客户端,所述任务创建客户端通信连接于所述任务创建服务单元。所述任务创建客户端用于录入任务数据,以使所述任务创建服务单元利用所述任务数据创建对应的定时提醒任务。

本发明还提供了一种业务生态系统,其包括业务系统和上述所述的轻量级任务触发系统,所述业务系统设置有多个业务逻辑,所述轻量级任务触发系统通信连接于所述业务系统并用于触发所述业务系统执行对应的业务逻辑。

在根据一些实施例的业务生态系统中,所述业务生态系统还包括分布式服务框架。所述轻量级任务触发系统还包括任务创建客户端,所述任务创建客户端通过所述分布式服务框架通信连接于所述任务创建服务单元。所述任务创建客户端设置为能够被所述业务系统调用以录入任务数据,以使所述任务创建服务单元利用所述任务数据创建对应的定时提醒任务。

在根据一些实施例的业务生态系统中,所述轻量级任务触发系统的任务触发器直接与所述业务系统通信连接。

在根据一些实施例的业务生态系统中,所述业务生态系统还包括消息中间件,所述轻量级任务触发系统的任务触发器通过所述消息中间件与所述业务系统通信连接。

在根据一些实施例的业务生态系统中,所述业务系统在数量上为一个或多个。所述任务创建服务单元创建的各定时提醒任务具有特定的任务类型。所述消息中间件配置有与各任务类型对应的主题,各业务系统预先订阅所述消息中间件中对应的主题。所述消息中间件设置为接收所述任务触发器发送的定时提醒任务、并将与主题对应的定时提醒任务分别发送给订阅有该主题的业务系统,以触发订阅有该主题的业务系统执行与该定时提醒任务对应的业务逻辑。

在根据一些实施例的业务生态系统中,所述轻量级任务触发系统在数量上为多个。所述业务生态系统还包括分布式协调服务系统,所述分布式协调服务系统通信连接于所述多个轻量级任务触发系统。所述分布式协调服务系统记录所述多个轻量级任务触发系统的IP信息、且所有轻量级任务触发系统的IP信息一起构成集群IP信息。所述分布式协调服务系统设置为在集群IP信息发生变化时将集群IP信息已发生变化的状态发送给所有的轻量级任务触发系统。

本发明的有益效果如下:

在本申请的轻量级任务触发系统中,基于任务创建服务单元、数据库、任务管理单元、任务扫描器、任务资源池和任务触发器之间的协同配合,实现了从定时提醒任务的创建、管理到触发某个业务系统执行对应的业务逻辑的全过程。其中,在整个系统工作过程中,轻量级任务触发系统只是负责任务触发、而不参与任务的实际执行过程即任务触发器与业务系统之间完全没有耦合,从而极大地减轻了轻量级任务触发系统自身的负担、高效地运用了业务系统自身的业务执行能力,由此有利于整个系统的轻量化设计、降低了系统内存消耗和运维成本。

附图说明

图1是本发明的业务生态系统的一框架图。

图2是本发明的业务生态系统的另一框架图。

图3是本发明的业务生态系统的又一框架图。

图4是本发明的轻量级任务触发系统的框架图。

其中,附图标记说明如下:

1轻量级任务触发系统 17任务调配单元

11任务创建服务单元 18任务创建客户端

12数据库 2业务系统

13任务管理单元 3分布式服务框架

14任务扫描器 4消息中间件

15任务资源池 5分布式协调服务系统

16任务触发器

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“创建”以及它们的任何变形,意图在于覆盖不排他的包含。本申请中出现的“多个”指的是两个以上(包括两个)。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

下面参照附图来详细说明根据本申请的轻量级任务触发系统及业务生态系统。

参照图1至图3,本申请的业务生态系统100包括至少一个业务系统2和至少一个轻量级任务触发系统1,各轻量级任务触发系统1通信连接于对应的业务系统2。

各业务系统2设置有多个业务逻辑,各业务逻辑设置为在轻量级任务触发系统1触发业务系统2后由业务系统2直接执行。在一些实施例中,业务系统2在数量上可为一个或多个。

各轻量级任务触发系统1用于创建定时提醒任务、并在特定的时间内将定时提醒任务发送给对应的业务系统2,以触发对应的业务系统2去直接执行与该定时提醒任务对应的业务逻辑。这里,由于轻量级任务触发系统1只负责任务触发(即构建定时提醒任务、并在一定的时间内通过向业务系统2发送定时提醒任务信息,以提醒业务系统2即将要执行某个业务逻辑)2、而不参与任务执行过程,从而使得轻量级任务触发系统1的任务触发过程与业务系统2的任务执行过程完全没有耦合,由此有效地减少了系统内存的消耗。

在一些实施例中,轻量级任务触发系统1在数量上也可为一个或多个。其中,同一个轻量级任务触发系统1可只服务于一个业务系统2、也可同时服务于多个业务系统2。

轻量级任务触发系统1的具体数量可基于整个业务生态系统100中所有业务系统2的业务总量以及处理时效需求来进行适当设置。具体地,假设整个业务生态系统100中有3200条定时提醒任务需要处理,若采用一个轻量级任务触发系统1完成对3200条定时提醒任务的处理需要6秒;若采用两个轻量级任务触发系统1完成对3200条定时提醒任务的处理需要3秒;若采用四个轻量级任务触发系统1完成对3200条定时提醒任务的处理需要1.5秒;以此类推,随着轻量级任务触发系统1数量的不断增加,整个业务生态系统100的处理效率大大提升了。

在一些实施例中,参照图1至图4,各轻量级任务触发系统1包括任务创建服务单元11、数据库12、任务管理单元13、任务扫描器14、任务资源池15和任务触发器16。

任务创建服务单元11通信连接于数据库12和对应的业务系统2。其中,根据业务系统2的业务需求(即下文业务系统2提供的任务数据),任务创建服务单元11创建出与业务需求对应的定时提醒任务(此时定时提醒任务中已包含有特定的任务类型信息),且在创建后还会对该定时提醒任务进行校验,以判断该定时提醒任务是否已经创建过、以及该定时提醒任务的任务类型是否是任务管理单元13中已登记的任务类型。待该定时提醒任务校验无误后,任务创建服务单元11再将其上传至数据库12中进行存储。

数据库12通信连接于任务创建服务单元11和任务管理单元13。具体地,数据库12包括任务类型表、任务总表(由多个任务分表组成)和corn任务表。所述任务类型表记录所有的定时提醒任务的任务类型,所述任务总表记录任务创建服务单元11创建的所有定时提醒任务,所述corn任务表记录任务创建服务单元11创建的具有corn任务表达式的所有定时提醒任务。基于数据库12中的任务类型表、任务总表和corn任务表的设置,通过任务管理单元13可以统一管理(如进行查询、开始、暂停、删除等操作)数据库12中所有的定时提醒任务,方便快捷。此外,任务管理单元13还可以用于创建新的任务类型。

任务管理单元13包括任务类型管理、总任务管理和corn任务管理。所述任务类型管理用于新建任务类型和管理(如进行查询、开始、暂停、删除等操作)数据库12中的任务类型表内的所有任务类型。所述总任务管理用于管理(如进行查询、开始、暂停、删除等操作)数据库12中的任务总表内的所有定时提醒任务。所述corn任务管理用于管理(如进行查询、开始、暂停、删除等操作)数据库12中的corn任务表内的所有定时提醒任务。

任务扫描器14通信连接于数据库12。其中,任务扫描器14中预先配置有扫描规则,且在系统工作过程中,任务扫描器14按照扫描规则定时轮询以扫描数据库12中的全部定时提醒任务、并将特定时间段内(根据定时任务将要执行的时间来设置)需要执行的定时提醒任务发送至任务资源池15。

任务资源池15用于接收、并暂时存储所述特定时间段内需要执行的定时提醒任务。任务资源池15作为内存中的一块存储空间,其存取速度远高于基于磁盘存储的数据库,从而不仅可以缓解数据库1中的数据压力,还有助于任务触发器16快速从任务资源池15中取出对应的定时提醒任务。

任务触发器16通信连接于任务资源池15。任务触发器16按照时间先后顺序将定时提醒任务依次从任务资源池15中取出并发送给对应的业务系统2(此时整个轻量级任务触发系统1的触发过程完成),以触发该业务系统2执行对应的业务逻辑。

在本申请的轻量级任务触发系统1中,基于任务创建服务单元11、数据库12、任务管理单元13、任务扫描器14、任务资源池15和任务触发器16之间的协同配合,实现了从定时提醒任务的创建、管理到触发某个业务系统2执行对应的业务逻辑的全过程。其中,在整个系统工作过程中,轻量级任务触发系统1只是负责任务触发、而不参与任务的实际执行过程(即任务触发器16与业务系统2之间完全没有耦合),从而极大地减轻了轻量级任务触发系统自身的负担、高效地运用了业务系统2自身的业务执行能力,由此有利于整个系统的轻量化设计、降低了系统内存消耗和运维成本。

需要说明的是,当轻量级任务触发系统1在数量上为多个时,所述多个轻量级任务触发系统1可共用同一个数据库12,即该数据库12能够存储整个业务生态系统100中所有的定时提醒任务。

在一些实施例中,参照图1至图4,各轻量级任务触发系统1还包括任务调配单元17,任务调配单元17通信连接于任务扫描器14、并用于对数据库12的任务总表中的所有任务分表进行分表逻辑计算以确定任务扫描器14要对应扫描的任务分表。具体地,当轻量级任务触发系统1在数量上为一个时,任务调配单元17将任务总表中的所有任务分表分配给该一个轻量级任务触发系统1处理;而当轻量级任务触发系统1在数量上为多个时,任务调配单元17将任务总表中的对应的任务分表分别分配给对应的轻量级任务触发系统1处理。这里需要说明的是,所有的轻量级任务触发系统1的任务调配单元17的分表逻辑计算结果一致。

在一些实施例中,参照图1至图4,轻量级任务触发系统1还包括任务创建客户端18,任务创建客户端18通信连接于任务创建服务单元11。任务创建客户端18设置为供业务系统2调用以录入任务数据,进而使得任务创建服务单元11利用所述任务数据创建出对应的定时提醒任务。

在一些实施例中,参照图1和图2,任务创建客户端18可集成在业务系统2内,以便于业务系统2直接提交任务数据。当然,任务创建客户端18也可与业务系统2相互独立设置、并通过设置通道的方式实现彼此之间的通信。

在一些实施例中,任务创建客户端18预先设置有各种任务模板,各任务模板包含与业务相关的各种业务参数(包括任务类型参数),因此业务系统2通过任务创建客户端18录入任务数据时可直接填写对应的任务类型。需要说明的是,对于含cron表达式的任务模板,对应的任务数据信息录入后,任务扫描器14定时轮询基于该任务数据建立的定时提醒任务。

在一些实施例中,业务系统2在数量上为多个,所述多个业务系统2可包括第一业务系统21和第二业务系统22。任务创建客户端18可设置为能够被第一业务系统21调用,以使第一业务系统21能够通过任务创建客户端18录入任务数据。其中,当第一业务系统21通过任务创建客户端18录入任务数据后,任务创建服务单元1利用这些任务数据信息创建出对应的定时提醒任务。进一步地,待定时提醒任务经由任务扫描器4放入任务资源池5中后,任务触发器6按照时间先后顺序将定时提醒任务依次从任务资源池5中取出并发送给第一业务系统21,以触发第一业务系统21执行与定时提醒任务对应的业务逻辑(此时为该定时提醒任务提供任务数据的业务系统和执行与该定时提醒任务对应的业务逻辑的业务系统为同一业务系统)),如图1所示。当然,任务触发器6也可按照时间先后顺序将定时提醒任务依次从任务资源池5中取出并发送给第二业务系统22,以触发第二业务系统22执行与该定时提醒任务对应的业务逻辑(此时为该定时提醒任务提供任务数据的业务系统和执行与该定时提醒任务对应的业务逻辑的业务系统为不同的业务系统),如图2所示。

在一些实施例中,参照图1和图2,本申请的业务生态系统100还包括分布式服务框架3。其中,轻量级任务触发系统1的任务创建客户端18通过分布式服务框架3与任务创建服务单元11通信连接。换句话说,分布式服务框架3其实在业务系统2与轻量级任务触发系统1之间形成一条数据传输通道,即分布式服务框架3能够接收业务系统2通过任务创建客户端18录入的任务数据、并将所述任务数据发送给任务创建服务单元11以供任务创建服务单元11创建出对应的定时提醒任务。

在一些实施例中,分布式服务框架3还具有分布式服务客户端。其中,所述分布式服务客户端可集成在任务创建客户端18中,由此实现分布式服务框架3与任务创建客户端18之间的通信连接。

在一些实施例中,轻量级任务触发系统1的任务触发器16可以直接与业务系统2通信连接,即任务触发器16直接触发业务系统2去执行对应的业务逻辑。

在一些实施例中,参照图1和图2,本申请的业务生态系统100还包括消息中间件4。其中,轻量级任务触发系统1的任务触发器16可通过消息中间件4与业务系统2间接通信连接。这里,由于消息中间件4本身具备异步、低耦、可靠、流控的特点,从而使得整个业务生态系统100简单、可靠。此外,基于消息中间件4的设置,轻量级任务触发系统1可实现一次性触发多个业务系统2的执行器来同时执行对应的业务逻辑。

具体地,消息中间件4中配置有与各任务类型对应的主题,各业务系统2可预先订阅消息中间件4中对应的主题,可同时订阅一个或多个。其中,消息中间件4设置为接收任务触发器16发送的定时提醒任务、并将与各主题对应的定时提醒任务分别发送给订阅有对应主题的业务系统2,以触发订阅有对应主题的业务系统2执行与定时提醒任务对应的业务逻辑。此外,多个业务系统2也可同时订阅同一个主题,此时任务触发器16通过消息中间件4将与该主题对应的定时任务发送给订阅有该主题的所有业务系统2,以触发订阅有该主题的业务系统2执行与该定时提醒任务对应的业务逻辑(如业务系统2的执行器关闭某个订单)。

在一些实施例中,参照图4,轻量级任务触发系统1在数量上为多个。所述业务生态系统100还包括分布式协调服务系统5,分布式协调服务系统5通信连接于所述多个轻量级任务触发系统1。分布式协调服务系统5能够记录所述多个轻量级任务触发系统1的IP信息,而所有轻量级任务触发系统1的IP信息一起构成集群IP信息。。并且,分布式协调服务系统5设置为当集群IP信息发生变化时,分布式协调服务系统5及时将集群IP信息已发生变化的状态(即集群IP信息已发生变化这件事)通知给当前所有的轻量级任务触发系统1并触发各轻量级任务触发系统1的任务调配单元17重新进行分表逻辑计算。其中,分布式协调服务系统5主要用于自动扩容和自动容灾处理方面,详细说明如下。

当业务生态系统100需要增加新的轻量级任务触发系统1时,新增加的轻量级任务触发系统1先将自身的IP信息上报给分布式协调服务系统5,则分布式协调服务系统5中记录的集群IP信息必然发生了变化,此时分布式协调服务系统5再将集群IP信息已发生变化这件事通知给当前所有的轻量级任务触发系统1的任务调配单元17,然后各轻量级任务触发系统1的任务调配单元17主动从分布式协调服务系统5中拉取变化后的集群IP信息、采用哈希环算法重新进行分表逻辑计算并将所有的任务分表按照一定规则重新分配给所有的轻量级任务触发系统1(包括新增加的轻量级任务触发系统1)的任务扫描器14。其中,具体分表逻辑计算过程简要说明如下:各任务调配单元17首先将所有的轻量级任务触发系统1的IP信息执行哈希环算法后分布到哈希环上;之后,所有任务分表的名称也执行哈希算法后放置于哈希环上;接着,所有任务分表的名称在哈希环上逆时针旋转以找到其归属的轻量级任务触发系统1的IP信息,此时所有的轻量级任务触发系统1的任务扫描器14都知道自己该扫描哪些任务分表了。

当业务生态系统100中的某个或某几个轻量级任务触发系统1发生宕机时,分布式协调服务系统5中记录的集群IP信息必然发生了变化,此时分布式协调服务系统5将集群IP信息已发生变化这件事通知给所有的轻量级任务触发系统1的任务调配单元17,然后各轻量级任务触发系统1的任务调配单元17主动从分布式协调服务系统5中拉取变化后的集群IP信息、采用哈希环算法重新进行分表逻辑计算并将所有的任务分表按照一定规则重新分配给所有的轻量级任务触发系统1(除去发生宕机的轻量级任务触发系统1)的任务扫描器14。

相关技术
  • 轻量级任务触发系统及业务生态系统
  • 业务触发方法、业务中间设备及业务触发系统
技术分类

06120113240883