[发明专利]延时任务执行方法及装置在审
申请号: | 201710400271.X | 申请日: | 2017-05-31 |
公开(公告)号: | CN107220030A | 公开(公告)日: | 2017-09-29 |
发明(设计)人: | 赵文兴;党艳平;王刚 | 申请(专利权)人: | 北京北信源软件股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/445 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙)11371 | 代理人: | 徐彦圣 |
地址: | 100000 北京市海淀区中关村*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 延时 任务 执行 方法 装置 | ||
技术领域
本发明涉及信息技术领域,具体而言,涉及一种延时任务执行方法及装置。
背景技术
目前,很多应用程序(APP)或软件系统等存在延时业务需求,也即,“一段时间后,完成一个工作任务”的需求。例如,在一个软件系统中,在订单完成后,若用户一直不评价,则在48小时后自动将该订单的评价设置为五星。针对这种业务需求,现有的处理方式是启动一定时任务,每间隔预设时长遍历软件系统中的所有订单,将完成时长达到48小时的订单的评价设置为五星。
然而,这一处理方式每次都需要遍历所有订单,轮询效率低。此外,由于每次都需要遍历所有的订单,为了降低设备运行压力,需要将每两次遍历之间的时间间隔设置成较大的时长,如此,会造成延时业务实际的延时时长与真正需要的延时时长之间存在较大误差,时效性不好。
发明内容
有鉴于此,本发明的目的在于提供一种延时任务执行方法及装置,以改善上述问题。
为了实现上述目的,本发明实施例提供一种延时任务执行方法,应用于电子设备,所述电子设备中包括一环形队列,所述环形队列中包括多个任务标签;所述方法包括:
按照预设时间间隔依次轮询所述环形队列中的任务标签;
接收延时消息,所述延时消息中包括待执行任务的延时时长;
生成触发所述待执行任务的任务触发指令;
计算得到所述延时时长后正在被询问的任务标签作为目标任务标签,并将所述任务触发指令存放至所述目标任务标签中;
针对每个正在被询问的任务标签,执行该任务标签中存放时间达到所述延时时长的任务触发指令。
优选地,在上述方法中,所述方法还包括:
在执行任务标签中的任务触发指令后,删除所述任务标签中被执行的任务触发指令。
优选地,在上述方法中,计算得到所述延时时长后正在被询问的任务标签作为目标任务标签,并将所述任务触发指令存放至所述目标任务标签中的步骤,包括:
根据所述预设时间间隔计算所述延时时长内能够轮询的任务标签的数量;
比较所述数量与所述环形队列中包括的任务标签的总量的大小;
若所述数量小于所述总量,则若所述数量小于所述总量,则将当前正在被询问的任务标签之后的第所述数量个任务标签作为所述目标任务标签,将所述触发标志位的值设置为0,并将所述任务触发指令存放至所述目标任务标签中;
若所述数量大于或等于所述总量,则对所述数量与所述总量做除法,得到一商和余数,将当前正在被询问的任务标签之后的第余数个任务标签作为所述目标任务标签,将所述触发标志位的值设置为所述商,以及将所述任务触发指令存放至所述目标任务标签中。
优选地,在上述方法中,针对每个正在被询问的任务标签,执行该任务标签中存放时间达到所述延时时长的任务触发指令的步骤,包括:
检测正在被询问的任务标签中是否存在任务触发指令;
若不存在任务触发指令,则继续询问下一任务标签;
若存在任务触发指令,则判断该任务触发指令的存放时间是否达到所述延时时长;
若未达到所述延时时长,则将所述任务触发指令中的触发标志位的值减1,并继续询问下一任务标签;
若达到所述延时时长,则执行所述任务触发指令。
优选地,在上述方法中,判断该任务触发指令的存放时间是否达到所述延时时长的步骤,包括:
检测该任务触发指令中的触发标志位的值是否为0;
若为0,则判定该任务触发指令的存放时间达到所述延时时长;
若不为0,则判定该任务触发指令的存放时间未达到所述延时时长。
本发明实施例还提供一种延时任务执行装置,应用于电子设备,所述电子设备包括一个环形队列,所述环形队列中包括多个任务标签;所述装置包括:
轮询模块,用于按照预设时间间隔依次轮询所述环形队列中的任务标签;
延时消息接收模块,用于接收延时消息,所述延时消息中包括待执行任务的延时时长;
触发指令生成模块,用于生成触发所述待执行任务的任务触发指令;
存放模块,用于计算得到所述延时时长后正在被询问的任务标签作为目标任务标签,并将所述任务触发指令存放至所述目标任务标签中;
执行模块,用于针对每个正在被询问的任务标签,执行该任务标签中存放时间达到所述延时时长的任务触发指令。
优选地,在上述装置中,所述装置还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北信源软件股份有限公司,未经北京北信源软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710400271.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:加速压缩方法以及使用此方法的装置
- 下一篇:一种市政建筑用钢管连结器