[发明专利]基于时间片调度的同步任务处理方法及装置有效
申请号: | 201711478190.8 | 申请日: | 2017-12-29 |
公开(公告)号: | CN108108463B | 公开(公告)日: | 2021-08-24 |
发明(设计)人: | 王康 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F16/22;G06F9/50;G06F9/48 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 时间 调度 同步 任务 处理 方法 装置 | ||
1.一种基于时间片调度的同步任务处理方法,包括:
根据至少一个从节点发送的同步请求,生成同步任务;
将所述同步任务置入任务队列中;
由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务;
判断同步任务的执行时间是否已到达预设时间片规定的时间,若是,将所述同步任务重置入所述任务队列中;
其中,在所述生成同步任务之后,所述方法还包括:
根据同步任务携带的任务描述信息,生成任务键值;
查询任务信息表中是否已存储包含所述任务键值的任务信息;
若所述任务信息表中未存储有包含所述任务键值的任务信息,则在所述将同步任务置入任务队列中之后,将包含任务键值以及与任务键值对应的同步任务在任务队列中的队列位置的任务信息存储在任务信息表中;
若所述任务信息表中已存储有包含所述任务键值的任务信息,则在所述将同步任务置入任务队列中之后,所述方法还包括:更新所述任务信息表中所述任务键值对应的同步任务在任务队列中的队列位置。
2.根据权利要求1所述的方法,其中,所述由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务进一步包括:
所述空闲线程根据指针指向的队列位置获取同步任务,根据所述同步任务携带的任务描述信息执行同步任务。
3.根据权利要求2所述的方法,其中,所述任务描述信息包括:表名称、数据分片标识、从节点标识以及同步偏移量;
在执行同步任务过程中,所述方法还包括:根据同步任务的执行情况动态刷新所述同步偏移量。
4.根据权利要求1所述的方法,其中,在所述由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务之后,所述方法还包括:
将所述任务信息表中已被执行的同步任务的任务键值对应的队列位置更新为指定值。
5.根据权利要求4所述的方法,其中,在所述将同步任务重置入所述任务队列中之前,所述方法还包括:在所述任务信息表中查询同步任务的任务键值对应的是否为所述指定值;
若是,则在将同步任务重置入所述任务队列中之后,将所述同步任务的任务键值对应的指定值更新为重置后的队列位置;
若否,则根据任务标识确定是否丢弃所述同步任务。
6.根据权利要求5所述的方法,其中,所述根据任务标识确定是否丢弃所述同步任务具体为:比较所述任务信息表中同步任务的任务标识与待重置入任务队列的同步任务的任务标识,若比较结果表明所述任务信息表中同步任务为较晚生成的同步任务,则丢弃所述待重置入任务队列的同步任务。
7.根据权利要求4-6中任一项所述的方法,其中,在同步任务的执行时间已到达预设时间片规定的时间后,所述方法还包括:
获取所述同步任务当前的快照信息,将所述快照信息与所述同步任务对应的任务键值关联存储至所述任务信息表中。
8.根据权利要求7所述的方法,其中,所述方法还包括:
接收对同步任务的同步状态查询请求;
根据所述任务信息表中与所述同步任务对应的任务键值关联存储的快照信息获取查询结果。
9.根据权利要求8所述的方法,其中,所述将所述同步任务置入任务队列中进一步包括:
确定所述同步任务的优先级;
将所述同步任务置入与所述同步任务的优先级相对应的任务队列中。
10.根据权利要求9所述的方法,其中,所述由线程池中的任一空闲线程从所述任务队列中获取并执行同步任务进一步包括:
由线程池中的任一空闲线程根据任务队列的优先级信息从所述任务队列中获取并执行同步任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711478190.8/1.html,转载请声明来源钻瓜专利网。