[发明专利]异步任务处理方法、装置、计算机设备和存储介质有效
申请号: | 201911058346.6 | 申请日: | 2019-11-01 |
公开(公告)号: | CN110990132B | 公开(公告)日: | 2023-03-10 |
发明(设计)人: | 陈曦 | 申请(专利权)人: | 浙江大搜车软件技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 杭州华进联浙知识产权代理有限公司 33250 | 代理人: | 金无量 |
地址: | 310000 浙江省杭州市余*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异步 任务 处理 方法 装置 计算机 设备 存储 介质 | ||
1.一种异步任务处理方法,其特征在于,所述方法包括:
检测任务数据库中是否存在未执行的异步任务;
当检测到所述任务数据库中存在所述未执行的异步任务时,根据所述未执行的异步任务的类型将所述未执行的异步任务添加至对应的任务队列中;
当存在空闲线程时,利用所述空闲线程执行所述任务队列中的异步任务;
其中,所述检测任务数据库中是否存在未执行的异步任务,包括:
计算预设的间隔时长与任务数据库对应的系统中客户端的数量的乘积,得到第一数值;
获取随机变量,计算随机变量与1/2的和,得到第二数据;
计算所述第一数值与所述第二数据的乘积,得到轮询间隔时长;
根据所述轮询间隔时长,对所述任务数据库中是否存在所述未执行的异步任务进行轮询检测;
其中,所述根据所述未执行的异步任务的类型将所述未执行的异步任务添加至对应的任务队列中,包括:
当所述未执行的异步任务的类型为依赖类型或者延时类型时,将所述未执行的异步任务添加至等待队列,所述依赖类型用于表征异步任务的执行条件为必须在前置任务完成之后才能被执行,所述延时类型用于表征异步任务的执行条件为需要等待一定时长之后才能被执行;
当所述未执行的异步任务的类型不是依赖类型和延时类型时,将所述未执行的异步任务添加至就绪队列中;
当所述等待队列中的异步任务满足执行条件时,将满足执行条件的异步任务添加至所述就绪队列中。
2.根据权利要求1所述的方法,其特征在于,所述任务队列包括所述等待队列、所述就绪队列、执行队列、成功队列、重试队列及死亡队列中的任一队列。
3.根据权利要求2所述的方法,其特征在于,所述当存在空闲线程时,利用所述空闲线程执行所述任务队列中的异步任务,包括:
当存在所述空闲线程时,按照添加至所述就绪队列中的顺序,从所述就绪队列中获取异步任务;
将获取到的异步任务添加至执行队列中;
按照添加至所述执行队列中的顺序,利用所述空闲线程执行所述执行队列中的异步任务。
4.根据权利要求3所述的方法,其特征在于,所述利用所述空闲线程执行所述执行队列中的异步任务之后,所述方法还包括:
当异步任务被执行成功时,将执行成功的异步任务添加至成功队列;
当异步任务被执行失败时,将执行失败的异步任务添加至重试队列,所述重试队列中的异步任务会进入所述就绪队列中,等待重新被执行;
当异步任务重新被执行的次数超过第一预设阈值时,将重新被执行的次数超过第一预设阈值的异步任务添加至死亡队列。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将所述等待队列、所述就绪队列、所述执行队列、所述成功队列、所述重试队列和所述死亡队列中异步任务的数量发送至异步任务管理终端中,以供所述异步任务管理终端对所述异步任务的数量进行展示;
当所述等待队列、所述就绪队列、所述执行队列、所述成功队列、所述重试队列和所述死亡队列中任一队列的异步任务的数量超过第二预设阈值时,向所述异步任务管理终端发送告警信息,以供所述异步任务管理终端对所述告警信息进行展示。
6.根据权利要求1所述的方法,其特征在于,所述检测任务数据库中是否存在未执行的异步任务之前,所述方法还包括:
获取所述未执行的异步任务的类型;
将所述未执行的异步任务和所述未执行的异步任务的类型的对应关系存入所述任务数据库。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
通过当前异步任务的状态和数量信息对所述异步任务进行清空操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大搜车软件技术有限公司,未经浙江大搜车软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911058346.6/1.html,转载请声明来源钻瓜专利网。