[发明专利]任务执行方法、装置、计算机设备及存储介质有效
申请号: | 201910394881.2 | 申请日: | 2019-05-13 |
公开(公告)号: | CN110119305B | 公开(公告)日: | 2022-01-21 |
发明(设计)人: | 王裕辰 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 祝亚男 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务 执行 方法 装置 计算机 设备 存储 介质 | ||
1.一种任务执行方法,其特征在于,包括:
通过多个进程轮询任务数据库,获取所述任务数据库中待执行的任务;
将所述多个进程获取到的任务存储到各自对应的任务队列中,不同进程对应的任务队列用于存储不同任务;
通过所述多个进程执行各自对应的任务队列中的任务;
其中,所述任务数据库或所述任务数据库以外的内存数据库中存储有进程的心跳时间戳;
所述方法还包括:
通过所述多个进程周期性更新各自的心跳时间戳;
通过所述多个进程中的每个进程,检测各自进程以外的进程的心跳时间戳;
当任一进程的心跳时间戳在目标时间间隔内未更新时,对所述任一进程对应的进程队列中的任务进行释放;其中,所述对所述任一进程对应的进程队列中的任务进行释放,包括:将所述任一进程获取的各个任务存储到目标进程对应的任务队列中,将所述任一进程与所述各个任务的对应关系修改为所述目标进程与所述各个任务的对应关系,所述目标进程为检测所述任一进程的心跳时间戳的进程。
2.根据权利要求1所述的任务执行方法,其特征在于,所述通过多个进程轮询任务数据库,获取所述任务数据库中待执行的任务,包括:
通过所述多个进程中的每个进程,轮询所述任务数据库,对所述任务数据库中未被任一进程获取的任务进行加锁处理;
所述将所述多个进程获取到的任务存储到各自对应的任务队列中,包括:
将所述多个进程中的每个进程加锁处理后的任务存储到各自对应的任务队列中;
释放所述多个进程对应的任务队列中任务的锁。
3.根据权利要求1或2所述的任务执行方法,其特征在于,所述通过多个进程轮询任务数据库,获取所述任务数据库中待执行的任务,包括:
通过所述多个进程轮询所述任务数据库,根据所述任务数据库中待执行的任务的优先级,对所述任务数据库中待执行的任务进行获取,优先级越高的任务越先被获取。
4.根据权利要求1所述的任务执行方法,其特征在于,所述通过多个进程轮询任务数据库,获取所述任务数据库中待执行的任务之后,所述方法还包括:
存储所述多个进程中的每个进程与各自获取到的任务的对应关系;
将所述多个进程获取到的任务的状态修改为第一状态,所述第一状态用于指示任务已被一个进程获取。
5.根据权利要求1所述的任务执行方法,其特征在于,所述通过所述多个进程执行各自对应的任务队列中的任务,包括:
开启所述多个进程中的每个进程对应的多个线程;
通过不同线程执行对应进程的任务队列中的不同任务。
6.根据权利要求1或5所述的任务执行方法,其特征在于,所述通过所述多个进程执行各自对应的任务队列中的任务,包括:
通过所述多个进程中的每个进程,根据各自对应的任务队列中任务的指示信息,执行各自对应的任务队列中的任务,所述指示信息用于指示每次执行目标任务过程中,子任务的并发执行数。
7.根据权利要求6所述的任务执行方法,其特征在于,所述根据各自对应的任务队列中任务的指示信息,执行各自对应的任务队列中的任务,包括:
从各自对应的任务队列中取出存储的任务;
根据当前取出的任务的指示信息,执行当前取出的任务中目标数量的子任务;
当所述目标数量的子任务执行完成后,对当前取出的任务中已执行完成的子任务进行标记;
在当前取出的任务中存在未执行的子任务的情况下,将当前取出的任务重新存储到对应的任务队列中,并再次执行从各自对应的任务队列中取出存储的任务的操作;
在当前取出的任务中不存在未执行的子任务时,将当前取出的任务的状态修改为第三状态,所述第三状态用于指示任务已执行完成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910394881.2/1.html,转载请声明来源钻瓜专利网。