一种基于Redis的高并发延时任务系统和处理方法与流程

文档序号:20767846发布日期:2020-05-15 19:13阅读:来源:国知局

技术特征:

1.一种基于redis的高并发延时任务系统,其特征在于,包括daemon组件、redis组件、event进程、消息队列组件和work组件,所述redis组件中具有若干个key,任务通过uuid进行hash路由到对应的key中,所述event进程对key进行轮询,所述event进程将任务写入消息队列组件中,所述work组件从消息队列组件取消消息并执行业务。

2.如权利要求1所述的一种基于redis的高并发延时任务系统,其特征在于,所述key中储存有一个source和一个value,所述source为任务的执行时间,所述value为要执行的任务数据。

3.如权利要求1所述的一种基于redis的高并发延时任务系统,其特征在于,所述event进程与key一一对应。

4.如权利要求1所述的一种基于redis的高并发延时任务系统,其特征在于,还包括daemon组件,所述daemon组件实时监测任务和redis组件,当redis写入失败时,进行异步补偿。

5.如权利要求1所述的一种基于redis的高并发延时任务系统,其特征在于,所述event进程多机部署,并设有zookeeper选主,由所述zookeeper选主的leader主机能够从redis取消息。

6.如权利要求5所述的一种基于redis的高并发延时任务系统,其特征在于,所述zookeeper选主的leader主机宕机后,所述zookeeper选主重新选取新的leader主机。

7.如权利要求1所述的一种基于redis的高并发延时任务系统,其特征在于,所述key的数量为可扩容的。

8.一种基于redis的高并发延时任务的处理方法,其特征在于,包括如下步骤:

s1:将任务的执行时间作为score,要执行的任务数据作为value,存放在zset中;

s2:用一个进程定时查询zset的score分数最小的元素,用zrangebyscore命令来实现;

s3:如果最小的分数小于等于当前时间戳,就将该任务取出来执行,否则休眠一段时间后再查询。


技术总结
本发明的一种基于Redis的高并发延时任务系统包括daemon组件、Redis组件、event进程、消息队列组件和work组件,Redis组件中具有若干个key,任务通过uuid进行hash路由到对应的key中,event进程对key进行轮询,event进程将任务写入消息队列组件中,work组件从消息队列组件取消消息并执行业务。该系统能依赖于Redis自身的持久化来实现持久化,依赖Redis集群来支持高并发和高可用,开发成本小,实时性高。本发明还提出一种基于Redis的高并发延时任务系统的处理方法。

技术研发人员:崔云龙
受保护的技术使用者:紫光云(南京)数字技术有限公司
技术研发日:2019.12.27
技术公布日:2020.05.15
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1