Skip to content

Commit 3cc5be5

Browse files
committed
Merge remote-tracking branch 'steve0511/master' into master_node_list_fix
2 parents 737c2ec + e080402 commit 3cc5be5

File tree

2 files changed

+25
-17
lines changed

2 files changed

+25
-17
lines changed

lib/resty/rediscluster.lua

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ local function split(s, delimiter)
9797
end
9898

9999
local function try_hosts_slots(self, serv_list)
100-
local start_time = ngx.req.start_time()
100+
local start_time = ngx.now()
101101
local errors = {}
102102
local config = self.config
103103
if #serv_list < 1 then
@@ -197,12 +197,19 @@ function _M.fetch_slots(self)
197197
local serv_list = self.config.serv_list
198198
local serv_list_cached = slot_cache[self.config.name .. "serv_list"]
199199

200-
local serv_list_combined = {}
200+
local serv_list_combined
201201

202-
-- if a cached serv_list is present, use it
202+
-- if a cached serv_list is present, start with that
203203
if serv_list_cached then
204204
serv_list_combined = serv_list_cached.serv_list
205+
206+
-- then append the serv_list from config, in the event that the entire
207+
-- cached serv_list no longer points to anything usable
208+
for _, s in ipairs(serv_list) do
209+
table_insert(serv_list_combined, s)
210+
end
205211
else
212+
-- otherwise we bootstrap with our serv_list from config
206213
serv_list_combined = serv_list
207214
end
208215

@@ -668,20 +675,21 @@ function _M.commit_pipeline(self)
668675
config.read_timeout or DEFAULT_READ_TIMEOUT)
669676
local ok, err = redis_client:connect(ip, port, self.config.connect_opts)
670677

671-
local authok, autherr = check_auth(self, redis_client)
672-
if autherr then
673-
return nil, autherr
674-
end
678+
if ok then
679+
local authok, autherr = check_auth(self, redis_client)
680+
if autherr then
681+
return nil, autherr
682+
end
675683

676-
if slave then
677-
--set readonly
678-
local ok, err = redis_client:readonly()
679-
if not ok then
680-
self:refresh_slots()
681-
return nil, err
684+
if slave then
685+
--set readonly
686+
local ok, err = redis_client:readonly()
687+
if not ok then
688+
self:refresh_slots()
689+
return nil, err
690+
end
682691
end
683-
end
684-
if ok then
692+
685693
redis_client:init_pipeline()
686694
for i = 1, #reqs do
687695
local req = reqs[i]

rockspec/resty-redis-cluster-1.04-1.rockspec renamed to rockspec/resty-redis-cluster-1.05-1.rockspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package = "resty-redis-cluster"
2-
version = "1.04-1"
2+
version = "1.05-1"
33
source = {
44
url = "git://github.com/steve0511/resty-redis-cluster",
5-
tag = "1.04",
5+
tag = "1.05",
66
}
77
description = {
88
summary = "Openresty lua client for redis cluster",

0 commit comments

Comments
 (0)