]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Controller: Make save stats timer persistent
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 14 Dec 2018 09:13:00 +0000 (09:13 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 14 Dec 2018 09:13:00 +0000 (09:13 +0000)
Issue: #2680

src/controller.c

index 4050ed13c85be5f9d718aa5d6bfea342e37b8792..b8eface74469d9acd6d0b00e166b1054ea608ed1 100644 (file)
@@ -3914,6 +3914,14 @@ start_controller_worker (struct rspamd_worker *worker)
 
                rspamd_map_watch (worker->srv->cfg, ctx->ev_base,
                                ctx->resolver, worker, TRUE);
+
+               /* Schedule periodic stats saving, see #1823 */
+               event_set (&ctx->save_stats_event, -1, EV_PERSIST,
+                               rspamd_controller_stats_save_periodic,
+                               ctx);
+               event_base_set (ctx->ev_base, &ctx->save_stats_event);
+               msec_to_tv (save_stats_interval, &stv);
+               evtimer_add (&ctx->save_stats_event, &stv);
        }
        else {
                rspamd_map_watch (worker->srv->cfg, ctx->ev_base,
@@ -3922,13 +3930,6 @@ start_controller_worker (struct rspamd_worker *worker)
 
        rspamd_lua_run_postloads (ctx->cfg->lua_state, ctx->cfg, ctx->ev_base, worker);
 
-       /* Schedule periodic stats saving, see #1823 */
-       evtimer_set (&ctx->save_stats_event, rspamd_controller_stats_save_periodic,
-                       ctx);
-       event_base_set (ctx->ev_base, &ctx->save_stats_event);
-       msec_to_tv (save_stats_interval, &stv);
-       evtimer_add (&ctx->save_stats_event, &stv);
-
        /* Start event loop */
        event_base_loop (ctx->ev_base, 0);
        rspamd_worker_block_signals ();