[发明专利]一种任务处理方法及装置在审
申请号: | 201810866634.3 | 申请日: | 2018-08-01 |
公开(公告)号: | CN109189564A | 公开(公告)日: | 2019-01-11 |
发明(设计)人: | 韩竞竞;李欣;龙慧 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 康正德;盛惠华 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 排序 权重 集合 任务处理 线程池 定时任务调度 任务执行 队列 存储 | ||
1.一种任务处理方法,包括:
获取多个定时任务,根据各个定时任务的执行时间,计算各个定时任务的权重值;
根据计算的各个定时任务的权重值,对各个定时任务进行排序;
根据各个定时任务的排序情况,将各个定时任务、对应的执行时间以及权重值存储到有序集合中;
新建线程池,由所述线程池依序执行所述有序集合中的各个定时任务。
2.根据权利要求1所述的方法,其中,若获取到新的定时任务,所述方法还包括:
根据新的定时任务的执行时间,计算新的定时任务的权重值;
根据新的定时任务的权重值以及所述有序集合中各个定时任务的权重值,确定新的定时任务即将存储在所述有序集合中的目标位置;
将新的定时任务、对应的执行时间以及权重值存储到所述有序集合的所述目标位置。
3.根据权利要求1或2所述的方法,其中,所述获取多个定时任务,包括:
通过指定接口接收来自客户端提交的多个定时任务;或者
获取软件开发端建立的多个定时任务。
4.根据权利要求1-3中任一项所述的方法,其中,所述执行时间与所述权重值呈线性关系。
5.根据权利要求1-4中任一项所述的方法,其中,由所述线程池依序执行所述有序集合中的各个定时任务,包括:
由所述线程池每次拉取所述有序集合中排序最前的定时任务,当该定时任务到达执行时间时,执行该定时任务。
6.根据权利要求5所述的方法,其中,由所述线程池每次拉取所述有序集合中排序最前的定时任务,当该定时任务到达执行时间时,执行该定时任务,包括:
由所述线程池每次拉取所述有序集合中排序最前的定时任务时,判断该定时任务是否到达执行时间;
若是,则执行该定时任务,并将该定时任务从所述有序集合中删除;
若否,则等待指定时长,再次拉取所述有序集合中排序最前的定时任务,并执行判断操作。
7.根据权利要求1-6中任一项所述的方法,其中,所述有序集合为存储系统Redis的zset有序集合,所述有序集合位于Redis服务器,所述权重值对应zset中的score。
8.一种任务处理装置,包括:
获取模块,适于获取多个定时任务;
计算模块,适于根据各个定时任务的执行时间,计算各个定时任务的权重值;
排序模块,适于根据计算的各个定时任务的权重值,对各个定时任务进行排序;
存储模块,适于根据各个定时任务的排序情况,将各个定时任务、对应的执行时间以及权重值存储到有序集合中;
执行模块,适于新建线程池,由所述线程池依序执行所述有序集合中的各个定时任务。
9.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据权利要求1-7中任一项所述的任务处理方法。
10.一种计算设备,包括:
处理器;以及
存储有计算机程序代码的存储器;
当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行根据权利要求1-7中任一项所述的任务处理方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810866634.3/1.html,转载请声明来源钻瓜专利网。