diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-01-26 13:16:42 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-01-26 13:16:42 +0000 |
commit | d5a2a0d438a9c4848d6a443c2bfc269a37c6f02c (patch) | |
tree | 04e168d92ebc03c0ffab82e7f9b6571c3cb18119 | |
parent | 92dd6cd0686b2c11f1635b1440659b56f0299e00 (diff) | |
download | rspamd-d5a2a0d438a9c4848d6a443c2bfc269a37c6f02c.tar.gz rspamd-d5a2a0d438a9c4848d6a443c2bfc269a37c6f02c.zip |
Use pipelined HINCRBY
-rw-r--r-- | src/rspamadm/stat_convert.lua | 31 |
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 |