在我们开发过程中,难免需要各种服务的对接,在对接过程中由于网络等其他原因影响可能导致推送数据异常,这时候我们会采取一些重试机制
那么,类似于微信的重试推送机制的实现,如【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
3、采用Redis有序集合中的 ZRANGEBYSCORE 命令取出符合条件的集合,然后通过值去操作推送
ZRANGEBYSCORE key min max limit offset count
示例如下:
ZRANGEBYSCORE test_key 20200423210628 20200423220628 limit 0 10