面向海量任务的整流调度方法、装置、设备和介质与流程

文档序号:37166485发布日期:2024-03-01 12:07阅读:14来源:国知局
面向海量任务的整流调度方法、装置、设备和介质与流程

本发明涉及数据处理,尤其涉及面向海量任务的整流调度方法、装置、设备和介质。


背景技术:

1、在面向消费者的互联网软件系统中,会有面向消费者的海量任务在后台执行,并完成一些业务操作。例如:关闭超时未支付的订单,将商家产品信息定时同步到消费者,或大量消费者短时预定门票的订单信息同步到商家等。由于这些任务会在短时大量执行,因此,任务执行方系统会面临瞬时高流量的请求,如果处理不当,轻则任务处理延迟,重则执行方系统会被击垮,最终导致任务的延迟或不执行,从而影响消费者的使用。

2、针对上述问题,现有技术中采用的任务调度方法是在设置好的调度时间段下对任务进行调度,然而该调度方式存在以下缺陷:

3、(1)如果在设置好的调度时间段突然有海量任务需要调度,那么就会导致工作节点资源过载问题,例如:在设置好的调度时间段内,有近十万的任务调度到工作节点,由于工作节点有限,导致工作节点并发高,资源过载;

4、(2)如果在设置好的调度时间段内出现任务调度流量洪峰,那么为了承载这种情况,就需要部署超量的工作节点,然而这些冗余的工作节点会导致资源的浪费;

5、(3)如果为了控制工作节点的负载而使用限流,拒绝瞬时过载流量,那么就会导致任务调度系统短时存在大量更新任务,负载过高。

6、因此,针对现有技术中,对海量任务进行调度执行时存在的工作节点资源过载、资源浪费或调度系统负载过高的问题,尚未提出有效的解决方案。


技术实现思路

1、本发明实施例提供了一种面向海量任务的整流调度方法、装置、设备及介质,旨在解决现有技术方法中对海量任务进行调度执行时存在的工作节点资源过载、资源浪费或调度系统负载过高的问题,。

2、第一方面,本发明实施例提供了一种面向海量任务的整流调度方法,所述方法应用于面向海量任务的整流调度装置中,其中,所述装置包括接入方集群、执行方集群、任务注册服务、任务中心、任务管理服务和任务回调服务,所述方法包括:

3、通过api或者页面创建接入方应用,并在所述接入方应用下,所述任务管理服务对已设置的不同场景进行注册;

4、所述接入方集群下的接入方工作节点在注册的每一场景下构建同类型任务,并通过所述任务注册服务将每一场景下构建的同类型任务注册到所述任务中心,其中,任务中的信息包括场景名称、业务参数和任务执行时间;

5、设置当前扫描开始时间,所述任务中心从所述当前扫描开始时间开始,每间隔预设时间区间则对多个场景下的所有任务进行一次扫描和查询,以获取任务执行时间早于所述当前扫描开始时间中任一任务执行时间下的所有任务,并在所述所有任务中确定最小任务id和最大任务id,其中,间隔的预设时间区间的起始时间点为当前扫描的结束时间,终止时间点为下一次扫描的开始时间;

6、以所述最小任务id和所述最大任务id设置闭区间,并根据预设步长对所述闭区间进行分段,得到任务列表;

7、所述任务中心将所述任务列表发送给所述任务回调服务,所述任务回调服务遍历所述任务列表,提取出任务执行时间早于所述当前扫描开始时间的任务,并将提取出的任务随机分配到扫描区间的各个时间点下,生成延迟队列,其中,所述扫描区间为每次扫描间隔的预设时间区间;

8、所述延迟队列中的任务按不同的时间点触发唤醒,并由任务回调触发服务根据被唤醒任务的场景名称和接入方应用信息,从所述执行方集群中选取对应的执行方工作节点进行任务执行;

9、所述执行方将执行结果返回所述任务中心。

10、第二方面,本发明实施例提供了一种面向海量任务的整流调度装置,所述装置包括接入方集群、执行方集群、任务注册服务、任务中心、任务管理服务和任务回调服务;

11、通过api或者页面创建接入方应用,并在所述接入方应用下,所述任务管理服务对已设置的不同场景进行注册;

12、所述接入方集群下的接入方工作节点在注册的每一场景下构建同类型任务,并通过所述任务注册服务将每一场景下构建的同类型任务注册到所述任务中心,其中,任务中的信息包括场景名称、业务参数和任务执行时间;

13、设置当前扫描开始时间,所述任务中心从所述当前扫描开始时间开始,每间隔预设时间区间则对多个场景下的所有任务进行一次扫描和查询,以获取任务执行时间早于所述当前扫描开始时间中任一任务执行时间下的所有任务,并在所述所有任务中确定最小任务id和最大任务id,其中,间隔的预设时间区间的起始时间点为当前扫描的结束时间,终止时间点为下一次扫描的开始时间;

14、以所述最小任务id和所述最大任务id设置闭区间,并根据预设步长对所述闭区间进行分段,得到任务列表;

15、所述任务中心将所述任务列表发送给所述任务回调服务,所述任务回调服务遍历所述任务列表,提取出任务执行时间早于所述当前扫描开始时间的任务,并将提取出的任务随机分配到扫描区间的各个时间点下,生成延迟队列,其中,所述扫描区间为每次扫描间隔的预设时间区间;

16、所述延迟队列中的任务按不同的时间点触发唤醒,并由任务回调触发服务根据被唤醒任务的场景名称和接入方应用信息,从所述执行方集群中选取对应的执行方工作节点进行任务执行;

17、所述执行方将执行结果返回所述任务中心。

18、第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。

19、第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的方法。

20、本发明实施例提供了一种面向海量任务的整流调度方法及装置,其中,装置包括接入方集群、执行方集群、任务注册服务、任务中心、任务管理服务和任务回调服务。通过api或者页面创建接入方应用,并在接入方应用下,任务管理服务对已设置的不同场景进行注册;接入方集群下的接入方工作节点在注册的每一场景下构建同类型任务,并通过任务注册服务将每一场景下构建的同类型任务注册到任务中心,其中,任务中的信息包括场景名称、业务参数和任务执行时间;设置当前扫描开始时间,任务中心从当前扫描开始时间开始,每间隔预设时间区间则对多个场景下的所有任务进行一次扫描和查询,以获取任务执行时间早于当前扫描开始时间中任一任务执行时间下的所有任务,并在所有任务中确定最小任务id和最大任务id,其中,间隔的预设时间区间的起始时间点为当前扫描的结束时间,终止时间点为下一次扫描的开始时间;以最小任务id和最大任务id设置闭区间,并根据预设步长对闭区间进行分段,得到任务列表;任务中心将任务列表发送给任务回调服务,任务回调服务遍历任务列表,提取出任务执行时间早于当前扫描开始时间的任务,并将提取出的任务随机分配到扫描区间的各个时间点下,生成延迟队列,其中,扫描区间为每次扫描间隔的预设时间区间;延迟队列中的任务按不同的时间点触发唤醒,并由任务回调触发服务根据被唤醒任务的场景名称和接入方应用信息,从执行方集群中选取对应的执行方工作节点进行任务执行;执行方将执行结果返回任务中心。

21、由于现有技术是在设置好的调度时间段下对任务进行调度,那么该时间段内具体执行什么任务以及出现多少任务是不确定的,很可能会出现短时的流量洪峰。而本技术则是对待执行的海量任务列表中的每个任务都提前设置好了执行时间,在任务回调服务中将任务引入延迟整流队列中,以保证每个任务的执行是可控的,从而不仅可以将调度流量柔性的释放到执行方工作节点上,避免出现短时的流量洪峰,还能提高工作节点的利用率,降低工作节点面对海量调度任务时的过载问题。此外,通过本方法还能保障任务调度执行的可靠性,例如,若网络超时或响应调度失败时,任务中心会在下一个调度周期重新发起调度,保证每个任务一定会被执行。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1