
首先声明,这是一篇求助帖。。。
逻辑是这样写的,我把需要缓存下来的值缓存完之后,放入队列里,在过期前,发送给消费者,消费者里去处理这个过期的 key,更新完 key 的值之后 再放入队列,等快过期是再发送,依次循环来更新过期 key 的值。但是这么做有很大的问题,会不间断的生产,不间断的消费,比如我设置的延时发送消息 3 秒一次,也不会生效,由于刚上手 mq 所以 不是懂,求指导。

1 hhyvs111 2019 年 9 月 9 日 这个代码背景看的眼睛疼 |
2 runnerlee 2019 年 9 月 9 日 手机号码暴露 |
3 LeeSeoung 2019 年 9 月 9 日 了解下 死信 这个概念吧,rabbitmq 你用错了。 |
4 LeeSeoung 2019 年 9 月 9 日 rabbitmq 实现延迟队列 搜下这个 |
5 DanielGuo 2019 年 9 月 9 日 我也不太懂 mq,但是根据你的描述,为什么不直接开一个定时任务直接更新,而是发到 mq 里呢? |
6 jakehu 2019 年 9 月 9 日 如果只是延时队列的话我推荐你 https://github.com/beanstalkd/beanstalkd |
7 hosaos 2019 年 9 月 9 日 消息堆积怎么办?没及时消费消息 还是可能导致 redis 缓存过期 |
8 TangMonk 2019 年 9 月 9 日 以前做过 rabbitmq 的延时消息 https://www.cloudamqp.com/docs/delayed-messages.html |
9 lllllliu 2019 年 9 月 9 日 redis 过期之后在生成? 如果这样的话直接订阅 Redis 的 KeySpaceEvent 触发生成呗。 |
10 tinybaby365 2019 年 9 月 9 日 rabbitmq 安装一个延迟队列的插件。可以用这个 docker 镜像:jiangfengbing/rabbitmq-x:latest https://github.com/jiangfengbing/rabbitmq-x/blob/master/Dockerfile |
14 LeeSeoung 2019 年 9 月 9 日 @571726193 不好意思没仔细看,x-delay 这个需要配合插件 rabbitmq-delayed-message-exchange 使用,没有生效的 话看下是不是安装插件并且启用了。 |
15 571726193 OP 谢谢 各位的答复,目前已经解决,换了一种写法而已,功能已实现。只是还是 不太清楚原因而已。================================================================================================================================================ |
18 changdy 2019 年 9 月 10 日 |
21 xiaoyaojc 2019 年 9 月 12 日 redis 的 key 过期是惰性的,不是实时的,换句话说,延迟的时间是不确定的 |