【技术实现步骤摘要】
延迟消息队列实现方法以及系统
本专利技术涉及一种延迟消息队列实现方法以及系统。
技术介绍
当前,在电商、保险等业务场景下,会存在一系列的定时任务,例如:订单创建成功后5分钟内没支付则取消订单,用户收货完成7天后自动好评等。在用户多、并发高的情况下,这类定时任务会非常非常多。对于定时任务的执行,传统的方法一般是将任务放到数据库中,然后通过任务执行模块定时轮询数据库的方式取出相应的定时任务进行执行。但是,在高并发、海量用户的情况下,这种方式存在执行效率低,数据库压力大等缺点,从而导致定时任务可能不会按照预期执行。同时,有一些消息队列也提供了定时发送消息的功能,但是由于这些消息队列受限于性能等方面的影响,仅支持固定几个级别的延迟消息,并不支持任意时间的消息。
技术实现思路
针对上述现有技术的不足,本专利技术所要解决的技术问题是:提供一种能够支持任意级别、时间的延迟消息的延迟消息队列实现方法以及系统。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种延迟消息队列实现方法,包括:S101、 ...
【技术保护点】
1.一种延迟消息队列实现方法,包括:/nS101、在缓存服务器上预先创建一有序集合;/nS102、业务流程发送延迟消息至延迟消息模块,其中,所述延迟消息包括业务数据以及定时执行时间;/nS103、所述延迟消息模块将所述延迟消息保存至缓存服务器的有序集合中,所述缓存服务器根据时间戳进行升序排序;/nS104、所述延迟消息模块每隔一预定时间至所述缓存服务器上获取与当前时间的时间戳相等的业务数据;/nS105、若获取到所述业务数据,则将获取到的数据进行处理,将处理后的业务数据发送至消息队列中;/nS106、消息队列收到消息后,将消息投递至定时任务执行模块;/nS107、定时任务执 ...
【技术特征摘要】
1.一种延迟消息队列实现方法,包括:
S101、在缓存服务器上预先创建一有序集合;
S102、业务流程发送延迟消息至延迟消息模块,其中,所述延迟消息包括业务数据以及定时执行时间;
S103、所述延迟消息模块将所述延迟消息保存至缓存服务器的有序集合中,所述缓存服务器根据时间戳进行升序排序;
S104、所述延迟消息模块每隔一预定时间至所述缓存服务器上获取与当前时间的时间戳相等的业务数据;
S105、若获取到所述业务数据,则将获取到的数据进行处理,将处理后的业务数据发送至消息队列中;
S106、消息队列收到消息后,将消息投递至定时任务执行模块;
S107、定时任务执行模块启动线程进行定时任务的执行。
2.如权利要求1所述的延迟消息队列实现方法,其特征在于:
在S101步骤中,系统启动时,在缓存服务器上预先创建一以字符串TASK_MSGS为KEY的有序集合。
3.如权利要求2所述的延迟消息队列实现方法,其特征在于:
在S103步骤中,所述延迟消息模块将业务数据以及定时执行时间存放到缓存服务器的zset有序集合中,所述缓存服务器将定时执行的时间转换为时间戳,按照时间戳的值进行升序排列。
4.如权利要求1至3中任一项所述的延迟消息队列实现方法,其特征在于,还包括:
所述业务流程发送删除延迟消息至所述延迟消息模块;
所述延迟消息模块将所...
【专利技术属性】
技术研发人员:佘万卫,
申请(专利权)人:云南优鸟科技有限公司,
类型:发明
国别省市:云南;53
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。