【技术实现步骤摘要】
一种任务调度方法、系统、计算装置及可读存储介质
本专利技术涉及数据处理领域,尤其涉及一种任务调度方法、系统、计算设备及可读存储介质。
技术介绍
任务调度在业务系统中极为常见,业务多样化衍生出不同的业务系统,这就需要一种统一的任务调度系统来管理各部门业务的任务调度工作,且保证各部门业务正常运行。任务调度的实现方式很多,常见的技术有quartz、springtask、timer等,但都适于单机调度,不适合在集群环境中分布式部署,为解决这一问题,衍生出来很多的开源框架,典型代表是基于quartz框架进行二次开发xxl-job,该方法在在商家平台的初期阶段,因为业务系统中任务数据量小,业务的系统执行器也少,应用场景简单,在集群环境调度机器中,所有任务调度由其中一台机器触发,通过远程RPC形式调用执行器,任务调度简单快速有效。但这种方式不适合应用在任务万级以上场景中,基于quartz框架,底层以“抢占式”获取DB锁,由抢占成功节点负责调度所有任务,这导致节点负载悬殊较大,因为任务数量较大,抢占成功的节点在规定的时间不能处理完, ...
【技术保护点】
1.一种任务调度方法,所述任务调度方法适于在任务调度系统中执行,所述任务调度系统包括多个调度器,多个执行器,协调服务器和数据存储装置,所述数据存储装置包括预定数量个任务队列,其中,所述方法包括,/n接收待处理的任务,所述任务包含执行器、执行时间、任务标识,根据任务标识将任务与执行器关联的存储到任务队列中;/n所述调度器每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器;/n所述调度器每隔第二预定时间获取所述时间轮容器中当前时刻的任务,并将获取的任务插入该任务关联的执行器的任务执行器队列中,所述任务执行器队列由协调服务器创建;/n所述执行 ...
【技术特征摘要】
1.一种任务调度方法,所述任务调度方法适于在任务调度系统中执行,所述任务调度系统包括多个调度器,多个执行器,协调服务器和数据存储装置,所述数据存储装置包括预定数量个任务队列,其中,所述方法包括,
接收待处理的任务,所述任务包含执行器、执行时间、任务标识,根据任务标识将任务与执行器关联的存储到任务队列中;
所述调度器每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器;
所述调度器每隔第二预定时间获取所述时间轮容器中当前时刻的任务,并将获取的任务插入该任务关联的执行器的任务执行器队列中,所述任务执行器队列由协调服务器创建;
所述执行器从任务执行器队列中获取任务进行处理,并将任务执行结果加入任务结果队列中,所述任务结果队列由协调服务器创建;
所述调度器获取任务结果队列中的任务执行结果,并存储到数据存储装置中。
2.如权利要求1所述的方法,其中,所述方法还包括:
当有调度器发生故障时,所述数据存储装置中的预定数量个任务队列重新分配到剩余的非故障调度器上。
3.如权利要求1或2所述的方法,其中,所述调度器包括多个调度器实例,所述调度器每隔第一预定时间从对应的任务队列中获取第一预定时间内的任务,并根据执行时间插入时间轮容器包括:
调度器实例抢占预拉取任务锁;
若抢占到预拉取任务锁,该调度器实例获取该调度器对应的任务队列中的任务;
若任务的执行时间小于或等于当前时间减去第一预定时间,则丢弃;
若任务的执行时间在当前时间减去第一预定时间与当前时间之间,则将该任务插入该任务对应的执行器的任务执行队列中;
若任务的执行时间在当前时间与当前时间加上第一预定时间之间,则将该任务插入时间轮容器。
4.如权利要求3所述的方法,其中,所述若任务的执行时间在当前时间减去第一预定时间与当前时间之间,则将该任务插入该任务对应的执行器的任务执行队列中还包括:
计算该任务的下一次执行时间,若该任务的下一次执行时间在当前时间加上第一预定时间内,则将该任务添加到时间轮容器;
并将该任务的下一次执行时间持久化到数据存储装置中。
5.如权利要求1-4中任意一项所述的方法,其中,所述执行器包括多个执行器实例,所述执行器从任务执行器队列中获取任务进行处理包括:
执行器实例检测自身的处理能力是否满足处理条件;
若满足处理条件,执行器实例抢占执行器拉取任务锁...
【专利技术属性】
技术研发人员:张雪翔,
申请(专利权)人:北京齐尔布莱特科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。