[发明专利]延迟任务执行的方法和装置有效
申请号: | 201710451570.6 | 申请日: | 2017-06-15 |
公开(公告)号: | CN107291566B | 公开(公告)日: | 2020-06-05 |
发明(设计)人: | 马盼盼;魏大安 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/44 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 延迟 任务 执行 方法 装置 | ||
本发明公开了一种延迟任务执行的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:按照预设的时长为T的时间周期从所述队列中的特定窗口中取出该窗口中的所有任务,该用于取出任务的窗口通过取出任务的时间确定,其中,当添加任务时,根据添加任务的当前时间确定所述队列中用于添加任务的窗口,以将任务添加入该窗口中,其中,该用于添加任务的窗口与预设的延迟时长KT之后的所述时间周期中确定的用于取出任务的窗口为同一窗口,所述K为正整数;执行所述取出的任务。该实施方式能够支持分布式延迟处理,且延迟多个任务的执行时不需要启动过多线程,从而提高系统稳定性。
技术领域
本发明涉及计算机技术领域,尤其涉及一种延迟任务执行的方法和装置。
背景技术
目前,当需要对任务进行延迟执行的处理时,通常采用的方法是通过调用java的Thread.sleep()函数来实现,Thread.sleep()函数将执行任务的线程挂起一段时间,在需要延迟的时间结束后再将该线程唤醒,从而实现对于任务的延迟执行。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:首先,调用Thread.sleep()函数的方法,任务的延迟处理和任务的执行由同一台设备来进行,如果当执行任务的设备出现了问题,或重启,或重新部署时,该设备上所有的任务都将丢失,相应的任务的延迟信息也会丢失。并且,当需要同时延迟多个任务的执行的情况下,调用Thread.sleep()函数的方法,需要对每一个任务启动一个线程,在每个线程中分别执行Thread.sleep()函数,如果同时延迟的任务过多,就会出现线程膨胀的问题,设备会由于启动很多线程而被拖垮,系统稳定性较低。
因此,亟需一种能够支持分布式延迟处理,且延迟多个任务的执行时不需要启动过多线程的延迟任务执行的方法和装置。
发明内容
有鉴于此,本发明实施例提供一种延迟任务执行的方法和装置,能够支持分布式延迟处理,且延迟多个任务的执行时不需要启动过多线程,从而提高系统稳定性。
为实现上述目的,根据本发明实施例的一个方面,提供了一种延迟任务执行的方法,所述方法通过预设的队列存放所述任务,所述队列包括窗口,所述方法包括:
按照预设的时长为T的时间周期从所述队列中的特定窗口中取出该窗口中的所有任务,该用于取出任务的窗口通过取出任务的时间确定,
其中,当添加任务时,根据添加任务的当前时间确定所述队列中用于添加任务的窗口,以将任务添加入该窗口中,其中,该用于添加任务的窗口与预设的延迟时长KT之后的所述时间周期中确定的用于取出任务的窗口为同一窗口,所述K为正整数;
执行所述取出的任务。
进一步的,所述队列划分为第一队列和第二队列,当确定的所述用于添加任务的窗口位于所述第一和第二队列两者中任一时,同一时间确定的所述用于取出任务的窗口位于所述第一和第二队列两者中的另一队列。
进一步的,所述第一队列和第二队列包括:序号分别为0至K-1的K个窗口,
所述根据添加任务的当前时间确定所述队列中用于添加任务的窗口包括:
计算添加任务的当前时间与预设时间的差除以K的商再除以2的余数,若该余数为0,则用于添加任务的窗口所在的队列为所述第一队列,若该余数为1,则用于添加任务的窗口所在的队列为所述第二队列,
计算当前时间与预设时间的差除以K的余数,作为用于添加任务的窗口在队列中的序号。
进一步的,根据取出任务的时间确定用于取出任务的窗口包括:
计算取出任务的当前时间与预设时间的差除以K的商再除以2的余数,若该余数为0,则用于取出任务的窗口所在的队列为所述第二队列,若该余数为1,则用于取出任务的窗口所在的队列为所述第一队列,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710451570.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:运维可视化自动化作业平台及实现方法
- 下一篇:一种数据调用方法、装置以及系统