summaryrefslogtreecommitdiffstats
path: root/lualib
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-04-20 15:39:11 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-04-20 15:39:11 +0100
commitd4a35f5b65dea20d990b8a82835396bbca5cfb52 (patch)
treea9c5e3a25cfddbdad66c816b8961600087c4cdaf /lualib
parentefc103598b304ad1292cdf590e36255b8b16c342 (diff)
downloadrspamd-d4a35f5b65dea20d990b8a82835396bbca5cfb52.tar.gz
rspamd-d4a35f5b65dea20d990b8a82835396bbca5cfb52.zip
[Feature] Try harder to upload scripts to the Redis server
Issue: #2186
Diffstat (limited to 'lualib')
-rw-r--r--lualib/lua_redis.lua12
1 files changed, 11 insertions, 1 deletions
diff --git a/lualib/lua_redis.lua b/lualib/lua_redis.lua
index bb229479c..d22a4010c 100644
--- a/lualib/lua_redis.lua
+++ b/lualib/lua_redis.lua
@@ -812,6 +812,7 @@ local function load_script_taskless(script, cfg, ev_base)
"uploaded redis script to %s with id %s, sha: %s",
opt.upstream:get_addr(), script.id, data)
script.sha = data -- We assume that sha is the same on all servers
+ script.fatal_error = nil
end
script.in_flight = script.in_flight - 1
@@ -851,7 +852,16 @@ local function add_redis_script(script, redis_params)
-- Register on load function
rspamd_config:add_on_load(function(cfg, ev_base, worker)
- load_redis_script(new_script, cfg, ev_base, worker)
+ local mult = 0.0
+ rspamd_config:add_periodic(ev_base, 0.0, function()
+ if not new_script.sha then
+ load_redis_script(new_script, cfg, ev_base, worker)
+ mult = mult + 1
+ return 1.0 * mult -- Check one more time in one second
+ end
+
+ return false
+ end, false)
end)
table.insert(redis_scripts, new_script)