一种基于异步式编程的分布式任务注册及调度方法和系统技术方案

技术编号:27808389 阅读:13 留言:0更新日期:2021-03-30 09:31
本发明专利技术公开了一种基于异步式编程的分布式任务注册及调度方法和系统,包括:任务发起方注册任务信息;任务调度引擎接受模块获取任务信息,根据任务特征对相同任务进行合并后发送至待执行任务池;任务调度引擎执行模块根据待执行任务池中的任务信息,将符合条件的任务直接启动远程任务或将任务信息发布至任务执行队列;任务执行方获取任务执行队列中的任务信息,根据任务的执行策略启动任务。本发明专利技术可实现调度任务与应用解耦;通过定义任务执行策略改变以往单一执行模式,保证任务合理运行,降低服务器运行压力,满足高并发下的任务调度需求。需求。需求。

【技术实现步骤摘要】
一种基于异步式编程的分布式任务注册及调度方法和系统


[0001]本专利技术涉及一种分布式任务注册及调度系统,尤其是涉及一种被高频触发的或对计算程序执行策略有特殊需求的计算系统。

技术介绍

[0002]随着信息化技术的发展,业务核心系统延伸出来的子系统越来越多,子系统的业务需求对核心数据的依赖也越来越明显。为降低数据间对耦合,通过分布式任务调度系统能及时通知子系统的计算程序,保证系统间数据的一致性。但是在核心数据高频变化时,对任务调度系统和业务子系统的稳定运行提出了很高的需求。
[0003]在现有的技术中,任务调度系统主要解决了系统间解耦问题。当大量任务需要调度时,会导致调度系统的工作压力激增。随着任务注册队列不断的涌入新的调度需求,甚至会造成大量任务积压,业务一致性得不到保证。另外,高频次的触发子系统进行计算,也会造成子系统计算压力暴增,对服务器的稳定运行带来极大的风险。

技术实现思路

[0004]本专利技术的目的在于提供一种基于异步式编程的分布式任务注册及调度的实现方法。通过异步式编程将任务注册队列中的任务分发至不同的处理单元,提高了任务注册模块的高效性。通过任务合并,避免了不必要的任务调度,保证了任务执行方的稳定运行。最后,多种任务执行策略能够合理规划资源,满足不同场景下的任务调度需求。
[0005]为实现上述技术目的,本专利技术采用以下技术方案。提供一种基于异步式编程的分布式任务注册及调度方法,其特征在于,包括以下步骤:根据业务需求将任务信息按照指定格式发送至任务注册队列,所述任务信息包括任务类型、任务触发URL以及执行策略;从任务注册队列获取任务信息后,根据任务类型将任务信息待执行任务池;以定期检查的方式,根据待执行任务池中的任务信息判断当前任务是否需要执行,若需要执行,则判断任务触发URL是否有设定值,如果有设定值则通过异步调用设定的触发URL来启动任务执行体;若任务触发URL没有设定值,则将任务信息发送至任务执行队列; 任务执行方从任务执行队列中获取待执行任务信息后将任务交由任务执行控制器进行处理。
[0006]进一步地,根据任务类型将任务信息待执行任务池的具体方法包括以下步骤:所述任务类型包括可合并类型、更新类型以及常规类型,当任务类型为可合并类型时,将指定时间段内的相同内容合并成一条任务后,发送至待执行任务池;当任务类型为更新类型务时,判断当前待执行任务池中是否存在未被执行的相同任务,如果存在会将本次获取的任务信息更新至待执行任务池;如果不存在则将本次任务信息发送至待执行任务池;当任务类型为常规类型时,则将本次任务信息直接发送至待执行任务池。
[0007]进一步地,调用设定的触发URL来启动任务执行体后,根据本任务的执行计划更新或删除待执行任务池中的任务。
[0008]进一步地,所述任务信息中还包括任务执行体标识信息,任务执行方从任务执行
队列中获取待执行任务信息后,只处理任务信息中任务执行体标识信息与自身一致的任务。
[0009]进一步地,所述任务信息包括执行类,所述任务执行方从任务执行队列中获取待执行任务信息后将任务交由任务执行控制器进行处理,所述任务控制器包括一个分发线程和一个执行线程池,所述分发线程按照任务信息中的执行策略控制采用所述任务信息中的执行类对应的方式执行,所述执行线程池执行各任务。
[0010]再进一步地,分发线程按照任务信息中的执行策略控制采用所述任务信息中的执行类对应的方式执行,所述执行线程池执行各任务具体包括:所述执行策略包括队列方式、并行方式、取消当前方式、忽略当前方式和延迟方式;当任务的执行策略为“队列”方式时:分发线程将任务按照执行类为单位,为该执行类创建一个执行队列,依次将任务发送至执行线程池中执行,直到将执行队列中的任务全部执行完成。
[0011]当任务的执行策略为并行方式时:分发线程直接将该任务发送至执行线程池中执行。
[0012]当任务的执行策略为取消当前方式时:分发线程判断任务执行线程池中是否存在与本任务相同的执行类在运行,如果存在则调用当前任务的取消逻辑,待取消成功后将本次任务发送至执行线程池中执行;如果不存在,直接将该任务发送至执行线程池中执行;当任务的执行策略为忽略当前方式时:分发线程判断任务执行线程池中是否存在与本任务相同的执行类在运行,如果存在则舍弃当前的任务,不对本次任务做任何处理,如果不存在,直接将该任务发送至执行线程池中执行;当任务的执行策略为延迟方式时:分发线程按照执行类为单位记录前次任务执行时间,如果当前时间超过延迟时间时,将本次任务发送至执行线程池中执行;如果尚未达到延迟时间会创建一个定时器,在时间到达时将任务发送至执行线程池中执行。
[0013]进一步地,通过包装类对执行策略为取消当前的任务进行封装,包装类设计成包含当前任务和前次任务信息,包装类的执行方法中调用前次任务的取消方法,直到取消成功后再调用当前任务的执行方法。
[0014]另一方面,本专利技术提供一种基于异步式编程的分布式任务注册及调度系统,包括:任务注册方、任务接收模块、任务执行模块和任务执行方;所述任务注册方用于根据业务需求将任务信息按照指定格式发送至任务注册队列,所述任务信息包括任务类型、任务触发URL以及执行策略;所述任务接收模块用于从任务注册队列获取任务信息后,根据任务类型将任务信息待执行任务池;所述任务执行模块用于以定期检查的方式,根据待执行任务池中的任务信息判断当前任务是否需要执行,若需要执行,则判断任务触发URL是否有设定值,如果有设定值则通过异步调用设定的触发URL来启动任务执行体;若任务触发URL没有设定值,则将任务信息发送至任务执行队列;所述任务执行方用于从任务执行队列中获取待执行任务信息后将任务交由任务执行控制器进行处理。
[0015]进一步地,所述任务控制器包括一个分发线程和一个执行线程池,所述分发线程
按照任务信息中的执行策略控制采用所述任务信息中的执行类对应的方式执行,所述执行线程池执行各任务。
[0016]本专利技术所取得的有益效果:使用本专利技术可保证任务调度引擎的高效性、稳定性、容错性,改变了以往任务调度引擎的过载带来的任务触发不及时、丢失等状况。
[0017]使用本专利技术能够显著加强任务执行方的处理效率,特别是根据任务特征选择不同的执行策略能够合理的优化服务器资源,改变了以往任务执行方大量任务同时执行带来的服务器压力,甚至奔溃的风险。
附图说明
[0018]图1是具体实施例提供的一种基于异步式编程的分布式任务注册及调度的实现方法的流程图;图2是具体实施例提供中从注册任务到任务执行过程的数据流图。
具体实施方式
[0019]为使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本专利技术。
[0020]实施例1:一种基于异步式编程的分布式任务注册及调度方法,包括以下步骤:根据业务需求将任务信息按照指定格式发送至任务注册队列,所述任务信息包括任务类型、任务触发URL以及执行策略;从本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于异步式编程的分布式任务注册及调度方法,其特征在于,包括以下步骤:根据业务需求将任务信息按照指定格式发送至任务注册队列,所述任务信息包括任务类型、任务触发URL以及执行策略;从任务注册队列获取任务信息后,根据任务类型将任务信息待执行任务池;以定期检查的方式,根据待执行任务池中的任务信息判断当前任务是否需要执行,若需要执行,则判断任务触发URL是否有设定值,如果有设定值则通过异步调用设定的触发URL来启动任务执行体;若任务触发URL没有设定值,则将任务信息发送至任务执行队列; 任务执行方从任务执行队列中获取待执行任务信息后将任务交由任务执行控制器进行处理。2.根据权利要求1所述的一种基于异步式编程的分布式任务注册及调度方法,其特征在于,根据任务类型将任务信息待执行任务池的具体方法包括以下步骤:所述任务类型包括可合并类型、更新类型以及常规类型,当任务类型为可合并类型时,将指定时间段内的相同内容合并成一条任务后,发送至待执行任务池;当任务类型为更新类型务时,判断当前待执行任务池中是否存在未被执行的相同任务,如果存在会将本次获取的任务信息更新至待执行任务池;如果不存在则将本次任务信息发送至待执行任务池;当任务类型为常规类型时,则将本次任务信息直接发送至待执行任务池。3.根据权利要求1所述的一种基于异步式编程的分布式任务注册及调度方法,其特征在于,调用设定的触发URL来启动任务执行体后,根据本任务的执行计划更新或删除待执行任务池中的任务。4.根据权利要求1所述的一种基于异步式编程的分布式任务注册及调度方法,其特征在于,所述任务信息中还包括任务执行体标识信息,任务执行方从任务执行队列中获取待执行任务信息后,只处理任务信息中任务执行体标识信息与自身一致的任务。5.根据权利要求1所述的一种基于异步式编程的分布式任务注册及调度方法,其特征在于,所述任务信息包括执行类,所述任务执行方从任务执行队列中获取待执行任务信息后将任务交由任务执行控制器进行处理,所述任务控制器包括一个分发线程和一个执行线程池,所述分发线程按照任务信息中的执行策略控制采用所述任务信息中的执行类对应的方式执行,所述执行线程池执行各任务。6.根据权利要求5所述的一种基于异步式编程的分布式任务注册及调度方法,其特征在于,分发线程按照任务信息中的执行策略控制采用所述任务信息中的执行类对应的方式执行,所述执行线程池执行各任务具体包括:所述执行策略包括队列方式、并行方式、取消当前方式、忽略当前方式...

【专利技术属性】
技术研发人员:汪明贵陈高峰卢飒
申请(专利权)人:南京南瑞信息通信科技有限公司
类型:发明
国别省市:

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

1