任务调度方法和系统技术方案

技术编号:24937429 阅读:29 留言:0更新日期:2020-07-17 20:49
本发明专利技术公开了一种任务调度方法和系统,涉及计算机技术领域。该方法的一具体实施方式包括:为当前任务类型的至少一个分片项中的每一分片项分配调度应用的一个调度线程;其中,所述调度线程用于选取处理对应的分片项的执行应用、并将预先为当前任务类型设置的调度策略和该分片项的标识发送到选取的执行应用;在接收到属于当前任务类型的待执行任务时:由所述执行应用依据所述调度策略和该分片项的标识,获取待执行任务的该分片项的业务数据,以处理待执行任务的该分片项。该实施方式能够实现支持多任务调度、任务分片的高可用任务调度。

【技术实现步骤摘要】
任务调度方法和系统
本专利技术涉及计算机
,尤其涉及一种任务调度方法和装置。
技术介绍
定时任务是应用服务中一个常见的场景,例如电信领域中每个月底计算一次用户话费。实际应用中,一些异步处理的场景也可使用定时任务处理,例如在用户发出订单后向其发送邮件。任务调度系统是解决定时任务问题的具体方案,现有任务调度系统主要分为以下三类:以Timer为代表的单机版定时任务系统、以Quartz为代表的分布式集群多任务调度系统及以TBSchedule、Elastic-Job为代表的支持任务分片的分布式调度系统。在实现本专利技术的过程中,专利技术人发现:上述第一类系统无法实现系统的高可用和高性能处理,上述第二类系统无法实现任务的分片处理以及任务调度的弹性扩展。对于上述第三类系统,由于其在设计上多依赖ZooKeeper(一种分布式应用程序协调服务),同一时间仅有一个节点提供服务,因此其无法应对任务调度规模较大的情形;同时,其对作业节点的运行状态监测基于传输控制协议TCP(TransmissionControlProtocol)连接,由于分布式环境下网络往往存在抖动,其业务稳定性较差;最后,此类系统在设计上均将任务调度逻辑和业务处理逻辑置于一个作业节点,由此无法保证业务处理能力和任务调度能力的弹性扩展。
技术实现思路
有鉴于此,本专利技术实施例提供一种任务调度方法和系统,能够实现支持多任务调度、任务分片的高可用任务调度。为实现上述目的,根据本专利技术的一个方面,提供了一种任务调度方法。本专利技术实施例的任务调度方法包括:为当前任务类型的至少一个分片项中的每一分片项分配调度应用的一个调度线程;其中,所述调度线程用于选取处理对应的分片项的执行应用、并将预先为当前任务类型设置的调度策略和该分片项的标识发送到选取的执行应用;在接收到属于当前任务类型的待执行任务时:由所述执行应用依据所述调度策略和该分片项的标识,获取待执行任务的该分片项的业务数据,以处理待执行任务的该分片项。可选地,所述方法进一步包括:在执行应用启动时,将该执行应用对应的任务类型注册到注册中心,并为注册的任务类型设置调度策略;其中,调度策略包括:该任务类型的分片项数量、调度间隔和一次获取最大数据量。可选地,所述为当前任务类型的至少一个分片项中的每一分片项分配调度应用的一个调度线程,具体包括:对于当前任务类型的任一分片项:由多个调度应用的抢占线程试图获取预先设置的数据锁,由获取数据锁的调度应用启动调度线程,将该调度线程分配于该分片项;其中,该调度应用启动该调度线程之后,将数据锁释放;所述方法进一步包括:在调度线程对应的调度应用不可用时,为对应于该调度线程的分片项重新分配调度线程。可选地,调度线程可根据以下步骤选取处理对应的分片项的执行应用:从注册中心获取当前可用的执行应用;其中,注册中心通过每一执行应用发送的心跳信号确定该执行应用是否可用;依据负载均衡策略从当前可用的执行应用中确定处理该分片项的执行应用。可选地,执行应用可根据以下步骤获取待执行任务的对应于该执行应用的分片项的业务数据:在待执行任务的业务数据所在的数据表中,将每一记录的主键数据对调度策略中的分片项数量进行取余操作,将取余结果为该分片项的标识、且数量不大于调度策略中的一次获取最大数据量的记录确定为待执行任务的该分片项的业务数据。可选地,所述方法进一步包括:在执行应用获取的待执行任务的分片项的业务数据数量小于待执行任务的分片项的业务数据总量时,重新选取处理该分片项的执行应用,并将当前任务类型的调度策略和该分片项的标识发送到该执行应用;在接收到属于当前任务类型的另一待执行任务时,重新选取处理每一分片项的执行应用,并将当前任务类型的调度策略和相应分片项的标识发送到该执行应用;所述调度应用和所述执行应用设置于不同的计算机集群。为实现上述目的,根据本专利技术的另一方面,提供了一种任务调度系统。本专利技术实施例的任务调度系统可包括:设置至少一个调度应用的调度系统和设置至少一个执行应用的执行系统;其中,调度应用可用于启动调度线程,并将调度线程分配到当前任务类型的一个分片项;其中,所述调度线程用于选取处理该分片项的执行应用、并将预先为当前任务类型设置的调度策略和该分片项的标识发送到选取的执行应用;所述执行应用可用于:在接收到属于当前任务类型的待执行任务时,依据所述调度策略和该分片项的标识获取待执行任务的该分片项的业务数据,以处理待执行任务的该分片项。可选地,所述系统可进一步包括:注册中心,用于在执行应用和调用应用启动时,实现执行应用对应的任务类型和调用应用的注册;通过每一执行应用发送的心跳信号确定该执行应用是否可用;通过每一调度应用发送的心跳信号确定该调度应用是否可用;控制中心,用于为注册中心中注册的任务类型设置调度策略;其中,调度策略包括:该任务类型的分片项数量、调度间隔和一次获取最大数据量。可选地,调度系统的多个调度应用可用于:对于当前任务类型的任一分片项,利用启动的多个抢占线程试图获取预先设置的数据锁;获取数据锁的调度应用可用于:启动调度线程,将该调度线程分配于该分片项,并释放数据锁;调度线程可进一步用于:从注册中心获取当前可用的执行应用,依据负载均衡策略从中确定处理对应分片项的执行应用;该执行应用可进一步用于:在待执行任务的业务数据所在的数据表中,将每一记录的主键数据对调度策略中的分片项数量进行取余操作,将取余结果为该分片项的标识、且数量不大于调度策略中的一次获取最大数据量的记录确定为待执行任务的该分片项的业务数据。可选地,注册中心可进一步用于:存储数据锁及其当前状态;存储任务类型与实现接口的对应关系;存储任务类型与调度策略的对应关系;存储执行应用、服务器地址与执行应用运行状态的对应关系;存储调度应用、服务器地址、调度线程与调度线程运行状态的对应关系;存储任务类型、分片项标识、调度线程与分片项当前状态的对应关系。为实现上述目的,根据本专利技术的再一方面,提供了一种计算机可读存储介质。本专利技术的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术所提供的任务调度方法。根据本专利技术的技术方案,上述专利技术中的一个实施例具有如下优点或有益效果:其一,在每一任务类型启动后,为其每一分片项分配调度线程,调度线程用于为分片项选取符合预设条件的执行应用,并向执行应用发送相应的调度策略和分片项标识使得执行应用能够获取待执行任务中分片项的业务数据。通过上述设置,实现了任务调度逻辑(基于调度应用)和业务处理能力(基于执行应用)的分离,从而保证业务处理能力和任务调度能力的弹性扩展。其二,本专利技术可通过调度系统中的多个调度应用实现高可用的任务调度,解决了TBSchedule、Elastic-Job等严重依赖ZooKeeper导致的问题;同时,本专利技术采用数据库作为注册中心来存储任务类型、执行应用、调度应用、分片项、调度线程、调度策略、数据锁以及相关数据,在数据量较大时,可根据需要进行分库分表,从而提升系统的水平扩展能力,有助于支撑更大规模的本文档来自技高网...

【技术保护点】
1.一种任务调度方法,其特征在于,包括:/n为当前任务类型的至少一个分片项中的每一分片项分配调度应用的一个调度线程;其中,所述调度线程用于选取处理对应的分片项的执行应用、并将预先为当前任务类型设置的调度策略和该分片项的标识发送到选取的执行应用;/n在接收到属于当前任务类型的待执行任务时:由所述执行应用依据所述调度策略和该分片项的标识,获取待执行任务的该分片项的业务数据,以处理待执行任务的该分片项。/n

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:
为当前任务类型的至少一个分片项中的每一分片项分配调度应用的一个调度线程;其中,所述调度线程用于选取处理对应的分片项的执行应用、并将预先为当前任务类型设置的调度策略和该分片项的标识发送到选取的执行应用;
在接收到属于当前任务类型的待执行任务时:由所述执行应用依据所述调度策略和该分片项的标识,获取待执行任务的该分片项的业务数据,以处理待执行任务的该分片项。


2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
在执行应用启动时,将该执行应用对应的任务类型注册到注册中心,并为注册的任务类型设置调度策略;其中,调度策略包括:该任务类型的分片项数量、调度间隔和一次获取最大数据量。


3.根据权利要求1所述的方法,其特征在于,
所述为当前任务类型的至少一个分片项中的每一分片项分配调度应用的一个调度线程,具体包括:对于当前任务类型的任一分片项:由多个调度应用的抢占线程试图获取预先设置的数据锁,由获取数据锁的调度应用启动调度线程,将该调度线程分配于该分片项;其中,该调度应用启动该调度线程之后,将数据锁释放;以及
所述方法进一步包括:在调度线程对应的调度应用不可用时,为对应于该调度线程的分片项重新分配调度线程。


4.根据权利要求2所述的方法,其特征在于,调度线程根据以下步骤选取处理对应的分片项的执行应用:
从注册中心获取当前可用的执行应用;其中,注册中心通过每一执行应用发送的心跳信号确定该执行应用是否可用;
依据负载均衡策略从当前可用的执行应用中确定处理该分片项的执行应用。


5.根据权利要求2所述的方法,其特征在于,执行应用根据以下步骤获取待执行任务的对应于该执行应用的分片项的业务数据:
在待执行任务的业务数据所在的数据表中,将每一记录的主键数据对调度策略中的分片项数量进行取余操作,将取余结果为该分片项的标识、且数量不大于调度策略中的一次获取最大数据量的记录确定为待执行任务的该分片项的业务数据。


6.根据权利要求1-5任一所述的方法,其特征在于,所述方法进一步包括:
在执行应用获取的待执行任务的分片项的业务数据数量小于待执行任务的分片项的业务数据总量时,重新选取处理该分片项的执行应用,并将当前任务类型的调度策略和该分片项的标识发送到该执行应用;
在接收到属于当前任务类型的另一待执行任务时,重新选取处理每一分片项的执行应用,并将当前任务类型的调度策略和相应分片...

【专利技术属性】
技术研发人员:杨坤
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1