summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2017-03-23 10:41:58 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2017-04-12 12:13:43 +0100
commitbaef781654b93034ed48062a342abd4783d1f9c8 (patch)
treebad335bebb421c1b0646d952f5d79633ce0afc79 /src
parent5c0cf89749571b36754a39b5bc9fea94c5463f37 (diff)
downloadrabbitmq-server-git-baef781654b93034ed48062a342abd4783d1f9c8.tar.gz
Configurable vhost restart strategy
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_vhost_sup_sup.erl11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/rabbit_vhost_sup_sup.erl b/src/rabbit_vhost_sup_sup.erl
index 919d7ca7fd..0b6f6e3eb1 100644
--- a/src/rabbit_vhost_sup_sup.erl
+++ b/src/rabbit_vhost_sup_sup.erl
@@ -33,16 +33,23 @@
-record(vhost_sup, {vhost, vhost_sup_pid, wrapper_pid}).
start() ->
- rabbit_sup:start_supervisor_child(?MODULE).
+ supervisor:start_child(rabbit_sup,
+ {?MODULE, {?MODULE, start_link, []},
+ permanent, infinity, supervisor, [?MODULE]}).
start_link() ->
supervisor2:start_link({local, ?MODULE}, ?MODULE, []).
init([]) ->
+ VhostRestart = case application:get_env(rabbit, vhost_restart_strategy, stop_rabbit) of
+ give_up -> transient;
+ stop_rabbit -> permanent
+ end,
+
ets:new(?MODULE, [named_table, public, {keypos, #vhost_sup.vhost}]),
{ok, {{simple_one_for_one, 0, 5},
[{rabbit_vhost, {rabbit_vhost_sup_wrapper, start_link, []},
- permanent, infinity, supervisor,
+ VhostRestart, infinity, supervisor,
[rabbit_vhost_sup_wrapper, rabbit_vhost_sup]}]}}.
start_on_all_nodes(VHost) ->