在我们开发过程中,难免需要各种服务的对接,在对接过程中由于网络等其他原因影响可能导致推送数据异常,这时候我们会采取一些重试机制
那么,类似于微信的重试推送机制的实现,如【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