From dcf5aefea0363cc96d404591696e306fc323d8f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Mon, 15 Jun 2015 14:57:07 +0200 Subject: [PATCH] Add option to set net_ticktime (EJAB-1742) --- ejabberd.yml.example | 9 +++++++++ src/ejabberd_app.erl | 15 +++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/ejabberd.yml.example b/ejabberd.yml.example index 9fc815071..c57ef4657 100644 --- a/ejabberd.yml.example +++ b/ejabberd.yml.example @@ -72,6 +72,15 @@ log_rate_limit: 100 ## watchdog_admins: ## - "bob@example.com" +###. =============== +###' NODE PARAMETERS + +## +## net_ticktime: Specifies net_kernel tick time in seconds. This options must have +## identical value on all nodes, and in most cases shouldn't be changed at all from +## default value. +## +## net_ticktime: 60 ###. ================ ###' SERVED HOSTNAMES diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl index 46fbf81dc..30f34aff4 100644 --- a/src/ejabberd_app.erl +++ b/src/ejabberd_app.erl @@ -54,7 +54,7 @@ start(normal, _Args) -> ejabberd_admin:start(), gen_mod:start(), ejabberd_config:start(), - set_loglevel_from_config(), + set_settings_from_config(), acl:start(), shaper:start(), connect_nodes(), @@ -234,12 +234,17 @@ delete_pid_file() -> file:delete(PidFilename) end. -set_loglevel_from_config() -> +set_settings_from_config() -> Level = ejabberd_config:get_option( loglevel, fun(P) when P>=0, P=<5 -> P end, 4), - ejabberd_logger:set(Level). + ejabberd_logger:set(Level), + Ticktime = ejabberd_config:get_option( + net_ticktime, + opt_type(net_ticktime), + 60), + net_kernel:set_net_ticktime(Ticktime). start_apps() -> crypto:start(), @@ -252,6 +257,8 @@ start_apps() -> ejabberd:start_app(p1_zlib), ejabberd:start_app(p1_cache_tab). +opt_type(net_ticktime) -> + fun (P) when is_integer(P), P > 0 -> P end; opt_type(cluster_nodes) -> fun (Ns) -> true = lists:all(fun is_atom/1, Ns), Ns end; opt_type(loglevel) -> @@ -263,4 +270,4 @@ opt_type(modules) -> end, Mods) end; -opt_type(_) -> [cluster_nodes, loglevel, modules]. +opt_type(_) -> [cluster_nodes, loglevel, modules, net_ticktime].