[发明专利]一种基于缓冲队列和哈希环的任务调度方法和装置在审
申请号: | 202011031102.1 | 申请日: | 2020-09-27 |
公开(公告)号: | CN112231079A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 顾海 | 申请(专利权)人: | 武汉物易云通网络科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F16/22;G06F16/2455 |
代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 崔肖肖;向彬 |
地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 缓冲 队列 哈希环 任务 调度 方法 装置 | ||
1.一种基于缓冲队列和哈希环的任务调度方法,其特征在于,任务调度器中设有哈希环定时器和哈希环存储器,哈希环存储器中设有执行指针以及环形等间隔排列的多个槽位,执行指针转动一圈的时间与所述哈希环定时器的定时时间一致;则任务调度方法包括:
任务接收器接收到任务调度信息后,将任务编号和任务结束时间写入本地缓存,将任务的执行频率和执行逻辑写入本地的缓冲队列;
定时拉取线程以固定频率从所述缓冲队列中拉取任务,由哈希环定时器基于所述执行频率将任务放于哈希环存储器对应槽位的任务列表中;
哈希环定时器以所述固定频率转动所述哈希环存储器上的执行指针,并取出执行指针所指槽位的任务列表中已到执行时间的任务;
哈希环定时器基于任务编号向任务接收器询问取出的任务是否已停止,如果由对应的任务结束时间判断任务没有停止,则将任务的执行逻辑分发给异步执行器进行异步执行。
2.根据权利要求1所述的基于缓冲队列和哈希环的任务调度方法,其特征在于,如果任务没有停止,则哈希环定时器将任务的执行逻辑分发给异步执行器之后,再次将任务放回所述哈希环存储器上该任务在取出之前所在槽位的任务列表中。
3.根据权利要求1所述的基于缓冲队列和哈希环的任务调度方法,其特征在于,所述本地缓存是任务接收器在本机设置的一个KV数据结构;则所述将任务编号和任务结束时间写入本地缓存具体为:
任务接收器为接收到的任务设置一个唯一的任务编号,并将本地缓存中KV数据结构的key设置为任务编号,value设置为对应的任务结束时间,从而实现将任务编号和任务结束时间写入本地缓存;其中,如果接收到的任务没有任务结束时间,则将value设置为空。
4.根据权利要求3所述的基于缓冲队列和哈希环的任务调度方法,其特征在于,所述哈希环定时器基于任务编号向任务接收器询问取出的任务是否已停止,如果由对应的任务结束时间判断任务没有停止,则将任务的执行逻辑分发给异步执行器进行异步执行,具体为:
哈希环定时器根据取出的任务对应的任务编号,去所述任务接收器的本地缓存中查询对应的任务结束时间;如果任务结束时间为空或者任务结束时间大于当前时间,表示任务没有停止,则哈希环定时器将任务的执行逻辑分发给异步执行器,由异步执行器按照所述执行逻辑执行该任务。
5.根据权利要求1所述的基于缓冲队列和哈希环的任务调度方法,其特征在于,任务调度器中设有多个不同精度的哈希环定时器,每个哈希环定时器对应一种哈希环存储器;则所述定时拉取线程以固定频率从所述缓冲队列中拉取任务,由哈希环定时器基于所述执行频率将任务放于哈希环存储器对应槽位的任务列表中,具体为:
任务调度器启动定时拉取线程以固定频率从所述缓冲队列中拉取任务,并根据任务的执行频率判断任务应使用的哈希环定时器,判断完成后将拉取到的任务放入对应的哈希环定时器;
哈希环定时器基于任务的执行频率计算任务应放于对应哈希环存储器的槽位位置,计算完成后将任务放于对应哈希环存储器上该槽位的任务列表中。
6.根据权利要求5所述的基于缓冲队列和哈希环的任务调度方法,其特征在于,任务调度器中设置有四个不同精度的哈希环定时器,分别为30秒哈希环定时器、60秒哈希环定时器、300秒哈希环定时器和1800秒哈希环定时器,对应四种不同的哈希环存储器;则所述根据任务的执行频率判断任务应使用的哈希环定时器具体为:
当任务的执行频率大于等于30秒小于60秒时,使用30秒哈希环定时器;当任务的执行频率大于等于60秒小于300秒时,使用60秒哈希环定时器;当任务的执行频率大于等于300秒小于1800秒时,使用300秒哈希环定时器;当任务的执行频率大于等于1800秒时,使用1800秒哈希环定时器。
7.根据权利要求1-6任一所述的基于缓冲队列和哈希环的任务调度方法,其特征在于,在任务接收器接收到任务调度信息后,所述方法还包括:
任务接收器实时接收该任务对应的任务结束时间,并对所述本地缓存中的任务结束时间进行更新,以便在该任务下一次被调度时,根据所述本地缓存中更新后的任务结束时间判断任务是否被停止,进而确定是否执行该任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉物易云通网络科技有限公司,未经武汉物易云通网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011031102.1/1.html,转载请声明来源钻瓜专利网。