From 450a9aa1e243b8e179de3eca0827fac33943551b Mon Sep 17 00:00:00 2001 From: Ken Hibino Date: Tue, 8 Sep 2020 05:56:45 -0700 Subject: [PATCH] Add MaxRedirects field in RedisClusterClientOpt --- asynq.go | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/asynq.go b/asynq.go index 9559e6e..963a5b7 100644 --- a/asynq.go +++ b/asynq.go @@ -115,6 +115,11 @@ type RedisClusterClientOpt struct { // A seed list of host:port addresses of cluster nodes. Addrs []string + // The maximum number of retries before giving up. + // Command is retried on network errors and MOVED/ASK redirects. + // Default is 8 retries. + MaxRedirects int + // Username to authenticate the current connection when Redis ACLs are used. // See: https://redis.io/commands/auth. Username string @@ -250,17 +255,19 @@ func createRedisClient(r RedisConnOpt) redis.UniversalClient { }) case RedisClusterClientOpt: return redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: r.Addrs, - Username: r.Username, - Password: r.Password, - TLSConfig: r.TLSConfig, + Addrs: r.Addrs, + MaxRedirects: r.MaxRedirects, + Username: r.Username, + Password: r.Password, + TLSConfig: r.TLSConfig, }) case *RedisClusterClientOpt: return redis.NewClusterClient(&redis.ClusterOptions{ - Addrs: r.Addrs, - Username: r.Username, - Password: r.Password, - TLSConfig: r.TLSConfig, + Addrs: r.Addrs, + MaxRedirects: r.MaxRedirects, + Username: r.Username, + Password: r.Password, + TLSConfig: r.TLSConfig, }) default: panic(fmt.Sprintf("asynq: unexpected type %T for RedisConnOpt", r))