[发明专利]一种任务处理方法及装置在审
申请号: | 201810866634.3 | 申请日: | 2018-08-01 |
公开(公告)号: | CN109189564A | 公开(公告)日: | 2019-01-11 |
发明(设计)人: | 韩竞竞;李欣;龙慧 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 康正德;盛惠华 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 排序 权重 集合 任务处理 线程池 定时任务调度 任务执行 队列 存储 | ||
本发明提供了一种任务处理方法及装置。该方法包括:获取多个定时任务,根据各个定时任务的执行时间,计算各个定时任务的权重值;根据计算的各个定时任务的权重值,对各个定时任务进行排序;根据各个定时任务的排序情况,将各个定时任务、对应的执行时间以及权重值存储到有序集合中;新建线程池,由所述线程池依序执行所述有序集合中的各个定时任务。本发明实施例在有序集合中根据各个定时任务的执行时间,对各个定时任务进行排序,并根据排序情况依序执行各个定时任务,提高定时任务执行的准确性。并且,相比于现有技术中采用队列的方式执行定时任务,定时任务调度的灵活性更高。
技术领域
本发明涉及计算机技术领域,特别是一种任务处理方法、任务处理装置、计算机存储介质以及计算设备。
背景技术
在计算机系统中,定时任务的使用非常普遍,例如定时备份数据、定时推送消息、定时更新状态或者定时发布产品等。开发者先对定时任务的内容以及执行时间进行预先设定,然后系统则在执行时间到达后根据定时任务的内容自动地执行相应的操作。
相关技术中,采用定时任务触发器可以完成一些定时触发任务,但是需要配置在系统的配置文件中。因此,如果系统中的业务需要修改,就需要开发人员修改配置文件,用户无法自己修改。可以看到,目前对定时任务的定义、修改、维护比较死板,不灵活,应用性较差,亟待解决这一技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的任务处理方法、任务处理装置、计算机存储介质以及计算设备。
根据本发明实施例的一方面,提供了一种任务处理方法,包括:
获取多个定时任务,根据各个定时任务的执行时间,计算各个定时任务的权重值;
根据计算的各个定时任务的权重值,对各个定时任务进行排序;
根据各个定时任务的排序情况,将各个定时任务、对应的执行时间以及权重值存储到有序集合中;
新建线程池,由所述线程池依序执行所述有序集合中的各个定时任务。
可选地,若获取到新的定时任务,所述方法还包括:
根据新的定时任务的执行时间,计算新的定时任务的权重值;
根据新的定时任务的权重值以及所述有序集合中各个定时任务的权重值,确定新的定时任务即将存储在所述有序集合中的目标位置;
将新的定时任务、对应的执行时间以及权重值存储到所述有序集合的所述目标位置。
可选地,所述获取多个定时任务,包括:
通过指定接口接收来自客户端提交的多个定时任务;或者
获取软件开发端建立的多个定时任务。
可选地,所述执行时间与所述权重值呈线性关系。
可选地,由所述线程池依序执行所述有序集合中的各个定时任务,包括:
由所述线程池每次拉取所述有序集合中排序最前的定时任务,当该定时任务到达执行时间时,执行该定时任务。
可选地,由所述线程池每次拉取所述有序集合中排序最前的定时任务,当该定时任务到达执行时间时,执行该定时任务,包括:
由所述线程池每次拉取所述有序集合中排序最前的定时任务时,判断该定时任务是否到达执行时间;
若是,则执行该定时任务,并将该定时任务从所述有序集合中删除;
若否,则等待指定时长,再次拉取所述有序集合中排序最前的定时任务,并执行判断操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810866634.3/2.html,转载请声明来源钻瓜专利网。