]> source.dussan.org Git - rspamd.git/commitdiff
Use pipelined HINCRBY
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 26 Jan 2016 13:16:42 +0000 (13:16 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 26 Jan 2016 13:16:42 +0000 (13:16 +0000)
src/rspamadm/stat_convert.lua

index c9192ff01cc3ad23ad4e9fd148b87cc9401b9c06..d33a228667dc1b10fa743a843de66422fc336343 100644 (file)
@@ -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