延迟队列落地方案
需求是这样的,后台配置时间,然后给用户发消息。 在用户关注后,根据这个时间发消息 比如 5s,发送一条数据 10s,发送一条数据。
现在用的定时任务处理,这样大概会有 1 分钟左右误差。
如果将定时任务设置成秒级,则 1s 中处理不完业务。
如果用延迟队列。 用户关注,然后扫配置表,把用户 ID+延迟时间写入 redis zset 。然后一直消费这个有序队列。 这样存在一个问题,如果管理员修改后台配置信息,我就需要批量修改 zset 里边的时间。
也就是需要修改整个公众号所有的 zset 数据。
有什么简单一些的方案吗