ratelimits: Set a TTL each time we store bucket data in Redis (#7720)
Set the Redis TTL to TAT (theoretical arrival time) plus a 10-minute buffer to account for possible clock skew.
This commit is contained in:
parent
2e2bb944cc
commit
1b6e0867ae
|
|
@ -89,7 +89,9 @@ func (r *RedisSource) BatchSet(ctx context.Context, buckets map[string]time.Time
|
||||||
|
|
||||||
pipeline := r.client.Pipeline()
|
pipeline := r.client.Pipeline()
|
||||||
for bucketKey, tat := range buckets {
|
for bucketKey, tat := range buckets {
|
||||||
pipeline.Set(ctx, bucketKey, tat.UTC().UnixNano(), 0)
|
// Set a TTL of TAT + 10 minutes to account for clock skew.
|
||||||
|
ttl := tat.UTC().Sub(r.clk.Now()) + 10*time.Minute
|
||||||
|
pipeline.Set(ctx, bucketKey, tat.UTC().UnixNano(), ttl)
|
||||||
}
|
}
|
||||||
_, err := pipeline.Exec(ctx)
|
_, err := pipeline.Exec(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue