[发明专利]延迟任务的方法和装置在审
申请号: | 201710252093.0 | 申请日: | 2017-04-18 |
公开(公告)号: | CN108733462A | 公开(公告)日: | 2018-11-02 |
发明(设计)人: | 朱亚军 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 延迟 队列 方法和装置 放入 计算机可读存储介质 数据库 计时器 电子设备 集群 封装 扫描 | ||
本发明涉及延迟任务的方法和装置。该延迟任务的方法包括:针对需要延迟的任务,封装需要延迟的任务;将所述需要延迟的任务的执行时间放入数据库的延迟队列中,并将所述需要延迟的任务的内容放入数据库的不同于延迟队列的集群中;启动定时任务计时器扫描所述延迟队列以获取需执行的延迟任务。此外,本发明还涉及实现延迟任务的方法的电子设备和计算机可读存储介质。
技术领域
本发明涉及计算机领域,尤其涉及延迟任务的方法、装置、电子设备和计算机可读存储介质。
背景技术
在会话聊天记录处理过程中,需要在会话关闭时,查询出该会话的所有聊天记录,用以计算出相关指标。但是,在会话关闭时,聊天记录消息有可能并未达到,因此查询出的会话聊天记录不全,从而导致相关指标的计算不准确。所以在收到会话关闭消息后,需要延迟计算相关指标。
根据现有技术,如图1所示,在接收到消息队列(mq消息)后,将消息内容和执行时间戳放入redis FIFO队列(先入先出队列)中,并不断地轮询从消息队列中取出的任务(任务A、任务B等),判断该任务是否已经到达执行时间点。如果到达执行时间点则执行,如果未到达执行时间点则再放入redis FIFO队列中,并继续轮询。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:轮询性能消耗严重,而且在任务数量较多的情况下,延迟任务的执行时间不准。此外,在重启会话聊天应用时可能会丢失延迟任务。
发明内容
有鉴于此,本发明实施例提供一种延迟任务的方法、装置、电子设备和计算机可读存储介质,从而能够解决延迟任务丢失以及延迟任务执行时间不准确的问题,实现延迟任务的高性能。
为实现上述目的,根据本发明实施例的一个方面,提供了一种延迟任务的方法。
根据本发明实施例,延迟任务的方法包括:针对需要延迟的任务,封装需要延迟的任务;将需要延迟的任务的执行时间放入延迟队列(delay queue)中,并将需要延迟的任务的内容(job)放入数据库的不同于延迟队列的集群中;启动定时任务计时器(timer)扫描延迟队列以获取需执行的延迟任务,并将该任务放入业务队列(Biz topic)中执行。
可选地,数据库可以是redis数据库。
可选地,在封装需要延迟的任务时,在收到需要延迟任务的消息后,首先生成唯一标识符(优选通用唯一标识符,Uuid),然后将需要延迟的任务以带有该唯一标识符的键值对(key-value)方式放入所述数据库中。
可选地,key可以为通用唯一标识符,而value可以为需要延迟的任务的执行时间或需要延迟的任务的内容。
可选地,需要延迟的任务的执行时间可以以唯一标识符(优选通用唯一标识符)+执行时间戳的方式放入延迟队列中。
可选地,需要延迟的任务的内容可以以唯一标识符(优选通用唯一标识符)+需要延迟的任务的内容的方式放入数据库的不同于延迟队列的集群中。
可选地,需要延迟的任务的内容可以以json格式存储。
可选地,延迟队列可以采用redis数据库的zsortset数据结构,它以字符串+分数(score)方式存储并且可以基于分数排序。
可选地,分数可以为需要延迟的任务的执行时间戳,而字符串标识可以为唯一标识符(优选通用唯一标识符)。在此,需要延迟的任务可以按需要延迟的任务的执行时间戳自动排序,最近执行的任务会优先排列到延迟队列开头。
可选地,借助定时任务计时器可以轮询访问延迟队列。由于延迟队列会自动将最近执行的任务优先排列到延迟队列开头,因此每次可以高效地批量查询出需要延迟的任务的执行时间早于或等于当前时间的多个需要延迟的任务,以确保需要延迟的任务的执行时间较准确。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710252093.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:分布式任务调度方法和装置
- 下一篇:一种可扩展的管理应用的方法和装置