重试间隔推送机制之Redis 有序集合

在我们开发过程中,难免需要各种服务的对接,在对接过程中由于网络等其他原因影响可能导致推送数据异常,这时候我们会采取一些重试机制

那么,类似于微信的重试推送机制的实现,如【15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h】,我们可以采用redis有序集合

1、推送失败后,我们需要记录推送失败次数【用于取出下次推送的间隔时间节点】

2、采用Redis有序集合中的 ZADD 命令添加至集合中

ZADD key score value

示例如下:

ZADD test_key 20200423220628 testvalue //score为当前时间+推送的间隔时间

3、采用Redis有序集合中的 ZRANGEBYSCORE 命令取出符合条件的集合,然后通过值去操作推送

ZRANGEBYSCORE key min max limit offset count

示例如下:

ZRANGEBYSCORE test_key 0 20200423220628 limit 0 10 //范围为0到当前时间

————————————————

版权声明:本文为CSDN博主「Mr.叶落丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_18191907/article/details/105718644

你可能感兴趣的:(重试间隔推送机制之Redis 有序集合)