aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-01-26 13:16:42 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-01-26 13:16:42 +0000
commitd5a2a0d438a9c4848d6a443c2bfc269a37c6f02c (patch)
tree04e168d92ebc03c0ffab82e7f9b6571c3cb18119
parent92dd6cd0686b2c11f1635b1440659b56f0299e00 (diff)
downloadrspamd-d5a2a0d438a9c4848d6a443c2bfc269a37c6f02c.tar.gz
rspamd-d5a2a0d438a9c4848d6a443c2bfc269a37c6f02c.zip
Use pipelined HINCRBY
-rw-r--r--src/rspamadm/stat_convert.lua31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/rspamadm/stat_convert.lua b/src/rspamadm/stat_convert.lua
index c9192ff01..d33a22866 100644
--- a/src/rspamadm/stat_convert.lua
+++ b/src/rspamadm/stat_convert.lua
@@ -4,26 +4,25 @@ local _ = require "fun"
local function send_redis(server, symbol, tokens)
local ret = true
- local args = {}
-
+ local conn = redis.connect_sync({
+ host = server,
+ })
+
+ if not conn then
+ print('Cannot connect to ' .. server)
+ return false
+ end
+
_.each(function(t)
- if not args[t[3]] then
- args[t[3]] = {symbol .. t[3]}
- end
- table.insert(args[t[3]], t[1])
- table.insert(args[t[3]], t[2])
- end, tokens)
-
- _.each(function(k, argv)
- if not redis.make_request_sync({
- host = server,
- cmd = 'HMSET',
- args = argv
- }) then
+ if not conn:add_cmd('HINCRBY', {symbol .. t[3], t[1], t[2]}) then
ret = false
end
- end, args)
+ end, tokens)
+ if ret then
+ ret = conn:exec()
+ end
+
return ret
end