commit 99ff1c8: [Fix] Fix finishing script for clickhouse collection

Vsevolod Stakhov vsevolod at highsecure.ru
Tue Mar 19 12:21:03 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-03-19 12:15:41 +0000
URL: https://github.com/rspamd/rspamd/commit/99ff1c8add46cf0f32610ee8145ea3fe20654c5e (HEAD -> master)

[Fix] Fix finishing script for clickhouse collection

---
 src/plugins/lua/clickhouse.lua | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/plugins/lua/clickhouse.lua b/src/plugins/lua/clickhouse.lua
index 65555c7a2..a9caa5292 100644
--- a/src/plugins/lua/clickhouse.lua
+++ b/src/plugins/lua/clickhouse.lua
@@ -242,13 +242,14 @@ local function clickhouse_check_symbol(task, symbols, need_score)
   return false
 end
 
-local function clickhouse_send_data(task)
+local function clickhouse_send_data(task, ev_base)
+  local log_object = task or rspamd_config
   local upstream = settings.upstream:get_upstream_round_robin()
   local ip_addr = upstream:get_addr():to_string(true)
 
   local function gen_success_cb(what, how_many)
     return function (_, _)
-      rspamd_logger.infox(task, "sent %s rows of %s to clickhouse server %s",
+      rspamd_logger.infox(log_object, "sent %s rows of %s to clickhouse server %s",
           how_many, what, ip_addr)
       upstream:ok()
     end
@@ -256,23 +257,27 @@ local function clickhouse_send_data(task)
 
   local function gen_fail_cb(what, how_many)
     return function (_, err)
-      rspamd_logger.errx(task, "cannot send %s rows of %s data to clickhouse server %s: %s",
+      rspamd_logger.errx(log_object, "cannot send %s rows of %s data to clickhouse server %s: %s",
           how_many, what, ip_addr, err)
       upstream:fail()
     end
   end
 
   local function send_data(what, tbl, query)
-    local ch_params = {
-      task = task,
-    }
+    local ch_params = {}
+    if task then
+      ch_params.task = task
+    else
+      ch_params.config = rspamd_config
+      ch_params.ev_base = ev_base
+    end
 
     local ret = lua_clickhouse.insert(upstream, settings, ch_params,
         query, tbl,
         gen_success_cb(what, #tbl),
         gen_fail_cb(what, #tbl))
     if not ret then
-      rspamd_logger.errx(task, "cannot send %s rows of %s data to clickhouse server %s: %s",
+      rspamd_logger.errx(log_object, "cannot send %s rows of %s data to clickhouse server %s: %s",
           #tbl, what, ip_addr, 'cannot make HTTP request')
     end
   end
@@ -927,9 +932,9 @@ if opts then
         priority = 10,
         flags = 'empty,explicit_disable,ignore_passthrough',
       })
-      rspamd_config:register_finish_script(function(task)
+      rspamd_config:register_finish_script(function(_, ev_base, _)
         if nrows > 0 then
-          clickhouse_send_data(task)
+          clickhouse_send_data(nil, ev_base)
         end
       end)
       -- Create tables on load


More information about the Commits mailing list