一种自适应任务迁移方法及装置制造方法及图纸

技术编号:21343194 阅读:19 留言:0更新日期:2019-06-13 22:21
本申请提供了一种自适应任务迁移方法及装置,其中,该方法包括:接收事件中间件发布的任务释放事件,所述任务释放事件中携带有其他调度器所释放任务的任务标识;根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求,以使所述锁模块根据所述抢占请求返回表征抢占其他调度器所释放的任务是否成功的抢占结果消息;根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务。本申请所提供的方法,在某个调度器将任务释放时,通过任务抢占模式,而非任务分配模式来使其他调度器确定其所需要执行的任务,可以使任务在被释放的同时自动被抢占,从而提高了任务执行的效率。

An Adaptive Task Migration Method and Device

This application provides an adaptive task migration method and device, which includes: receiving task release events issued by event middleware, carrying task identification of tasks released by other schedulers, and locking module corresponding to tasks released by other schedulers according to task identification of tasks released by other schedulers. A preemption request is sent to enable the lock module to return a preemption result message indicating whether the tasks released by the other schedulers are successfully preempted according to the preemption request, and whether the tasks released by the other schedulers are executed according to the preemption result message is determined. The method provided in this application enables other schedulers to determine the tasks they need to perform through task preemption mode, rather than task allocation mode, when a scheduler releases a task, so that tasks can be automatically preempted while being released, thereby improving the efficiency of task execution.

【技术实现步骤摘要】
一种自适应任务迁移方法及装置
本申请涉及任务调度
,具体而言,涉及一种自适应任务迁移方法及装置。
技术介绍
在实际业务开发过程中,很多时候需要使用一些定时任务来解决问题。当定时任务数量很多的时候,需要对任务进行调度管理。在任务调度的过程中,调度器可能因为宕机或网络原因而不能正常工作,或者因为业务的需求量的变化而动态增加或减少机器资源。在这些场景中,调度器往往需要进行启停操作。对于被调度器调度的任务来说,在调度器启停的过程中,如何进行任务迁移,一直是任务调度的核心问题。目前,任务迁移过程是基于任务分配模式,其中,最简单的任务迁移方式是先将需要下线的调度器中的任务停止执行,然后任务分发中心将这些任务加入待迁移列表,最后再分配到其他调度器。还有一种任务迁移方式是先将待迁移的任务预先分配到其他调度器,等待原先调度器停止执行该任务时,被分配到该任务的调度器立即执行该任务。
技术实现思路
有鉴于此,本申请实施例的目的在于提供一种自适应任务迁移方法及装置,在某个调度器将任务释放时,通过任务抢占模式,而非任务分配模式来使其他调度器确定其所需要执行的任务,可以使任务在被释放的同时自动被抢占,从而提高了任务执行的效率。第一方面,本申请实施例提供了一种自适应任务迁移方法,包括:接收事件中间件发布的任务释放事件,所述任务释放事件中携带有其他调度器所释放任务的任务标识;根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求,以使所述锁模块根据所述抢占请求返回表征抢占其他调度器所释放的任务是否成功的抢占结果消息;根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务。结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述任务释放事件是所述事件中间件在接收到所述其他调度器发送的任务释放事件后生成的。结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中,根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求,包括:获取本地正在执行的任务数量;判断本地正在执行的任务数量是否小于预设的数量阈值;若本地正在执行的任务数量小于预设的数量阈值,则根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求。结合第一方面的第二种可能的实施方式,本申请实施例提供了第一方面的第三种可能的实施方式,其中,所述预设的数量阈值是根据以下参数确定的:本地调度器所在局域网当前所运行的任务总数量、本地调度器所在局域网中的调度器总数量,以及本地调度器的当前容错级别。结合第一方面,本申请实施例提供了第一方面的第四种可能的实施方式,其中,所述根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务,包括:若所述抢占结果消息为成功,则确定执行所述其他调度器所释放的任务;若所述抢占结果消息为不成功,则确定不执行所述其他调度器所释放的任务。结合第一方面,本申请实施例提供了第一方面的第五种可能的实施方式,其中,所述根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务,包括:若所述抢占结果消息为成功,则确定执行所述其他调度器所释放的任务,并向注册中心发送标注请求,以使所述注册中心在任务列表的所述其他调度器所释放的任务上,标注本地调度器的标识信息;所述本地调度器所在局域网中的注册中心用于储存每个调度器所执行的任务。第二方面,本申请实施例提供了一种自适应任务迁移方法,作用于任务迁移系统,所述任务迁移系统包括:事件中间件、多个调度器和至少一个锁模块;事件中间件分别与每个调度器连接;每个调度器均与对应的至少一个锁模块连接;所述方法包括:事件中间件向目标调度器发送任务释放事件;目标调度器根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求;锁模块根据所述抢占请求返回表征抢占其他调度器所释放的任务是否成功的抢占结果消息;目标调度器根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务。结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,所述锁模块根据所述抢占请求返回表征抢占其他调度器所释放的任务是否成功的抢占结果消息,包括:锁模块根据各个所述抢占请求的时间先后顺序,向最先发送抢占请求的调度器返回表征抢占其他调度器所释放的任务成功的抢占结果消息;并向不是最先发送抢占请求的调度器返回表征抢占其他调度器所释放的任务不成功的抢占结果消息。第三方面,本申请实施例提供了一种自适应任务迁移装置,包括:接收模块,用于接收事件中间件发布的任务释放事件,所述任务释放事件中携带有其他调度器所释放任务的任务标识;第一抢占请求发送模块,用于根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求,以使所述锁模块根据所述抢占请求返回表征抢占其他调度器所释放的任务是否成功的抢占结果消息;第一确定模块,用于根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务。结合第三方面,本申请实施例提供了第三方面的第一种可能的实施方式,其中,所述任务释放事件是所述事件中间件在接收到所述其他调度器发送的任务释放事件后生成的。结合第三方面,本申请实施例提供了第三方面的第二种可能的实施方式,其中,所述第一抢占请求发送模块,具体采用下述方式根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求:获取本地正在执行的任务数量;判断本地正在执行的任务数量是否小于预设的数量阈值;若本地正在执行的任务数量小于预设的数量阈值,则根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求。结合第三方面的第二种可能的实施方式,本申请实施例提供了第三方面的第三种可能的实施方式,其中,所述预设的数量阈值是根据以下参数确定的:本地调度器所在局域网当前所运行的任务总数量、本地调度器所在局域网中的调度器总数量,以及本地调度器的当前容错级别。结合第三方面,本申请实施例提供了第三方面的第四种可能的实施方式,其中,所述第一确定模块,具体采用下述方式根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务:若所述抢占结果消息为成功,则确定执行所述其他调度器所释放的任务;若所述抢占结果消息为不成功,则确定不执行所述其他调度器所释放的任务。结合第三方面,本申请实施例提供了第三方面的第五种可能的实施方式,其中,所述第一确定模块,具体采用下述方式根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务:若所述抢占结果消息为成功,则确定执行所述其他调度器所释放的任务,并向注册中心发送标注请求,以使所述注册中心在任务列表的所述其他调度器所释放的任务上,标注本地调度器的标识信息;所述本地调度器所在局域网中的注册中心用于储存每个调度器所执行的任务。第四方面,本申请实施例还提供了一种自适应任务迁移装置,作用于任务迁移系统,所述任务迁移系统包括:事件中间件、多个调度器和至少一个锁模块;事件中间件分别与每个调度器连接;每个调度器均与对应的至少一个锁模块连接;所述装置包括:任务释放事件发送模块,用于事件中间件向目标调度器发送本文档来自技高网...

【技术保护点】
1.一种自适应任务迁移方法,其特征在于,包括:接收事件中间件发布的任务释放事件,所述任务释放事件中携带有其他调度器所释放任务的任务标识;根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求,以使所述锁模块根据所述抢占请求返回表征抢占其他调度器所释放的任务是否成功的抢占结果消息;根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务。

【技术特征摘要】
1.一种自适应任务迁移方法,其特征在于,包括:接收事件中间件发布的任务释放事件,所述任务释放事件中携带有其他调度器所释放任务的任务标识;根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求,以使所述锁模块根据所述抢占请求返回表征抢占其他调度器所释放的任务是否成功的抢占结果消息;根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务。2.根据权利要求1所述的方法,其特征在于,所述任务释放事件是所述事件中间件在接收到所述其他调度器发送的任务释放事件后生成的。3.根据权利要求1所述的方法,其特征在于,根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求,包括:获取本地正在执行的任务数量;判断本地正在执行的任务数量是否小于预设的数量阈值;若本地正在执行的任务数量小于预设的数量阈值,则根据所述其他调度器所释放任务的任务标识,向与所述其他调度器所释放的任务对应的锁模块发送抢占请求。4.根据权利要求3所述的方法,其特征在于,所述预设的数量阈值是根据以下参数确定的:本地调度器所在局域网当前所运行的任务总数量、本地调度器所在局域网中的调度器总数量,以及本地调度器的当前容错级别。5.根据权利要求1所述的方法,其特征在于,所述根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务,包括:若所述抢占结果消息为成功,则确定执行所述其他调度器所释放的任务;若所述抢占结果消息为不成功,则确定不执行所述其他调度器所释放的任务。6.根据权利要求1所述的方法,其特征在于,所述根据所述抢占结果消息,确定是否执行所述其他调度器所释放的任务,包括:若所述抢占结果消息为成功,则确定执行所述其他调度器所释放的任务,并向注册中心发送标注请求,以使所述注册中心在任务列表的所述其他调度器所释放的任务上,标注本地调度器的标识信息;所述本地调度器所在局域网中的注册中心用于储存每个调度器所执行的任务。7.一种自适应任务迁移方法,其特征在于,作用于任务迁移系统,所述任务迁移系统包括:事件中间件、多个调度器和至少一...

【专利技术属性】
技术研发人员:李鹏飞梁鑫毛正卫
申请(专利权)人:普信恒业科技发展北京有限公司
类型:发明
国别省市:北京,11

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

1