From 239cf1b5fcb6efbffac7a67297ee2b7e2bdbb640 Mon Sep 17 00:00:00 2001 From: Feng Date: Wed, 22 Feb 2017 23:07:27 +0800 Subject: [PATCH] Add '{backoff, 1000, 1000, 10000}' to return of init/1 --- src/emqttd_bridge.erl | 17 +++++++++-------- src/emqttd_pubsub.erl | 7 ++++--- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/emqttd_bridge.erl b/src/emqttd_bridge.erl index 7e36ad256..7b3015f6d 100644 --- a/src/emqttd_bridge.erl +++ b/src/emqttd_bridge.erl @@ -40,16 +40,16 @@ qos = ?QOS_2, topic_suffix = <<>>, topic_prefix = <<>>, - mqueue :: emqttd_mqueue:mqueue(), + mqueue :: emqttd_mqueue:mqueue(), max_queue_len = 10000, ping_down_interval = ?PING_DOWN_INTERVAL, status = up}). --type(option() :: {qos, mqtt_qos()} | - {topic_suffix, binary()} | - {topic_prefix, binary()} | - {max_queue_len, pos_integer()} | - {ping_down_interval, pos_integer()}). +-type(option() :: {qos, mqtt_qos()} | + {topic_suffix, binary()} | + {topic_prefix, binary()} | + {max_queue_len, pos_integer()} | + {ping_down_interval, pos_integer()}). -export_type([option/0]). @@ -79,9 +79,10 @@ init([Pool, Id, Node, Topic, Options]) -> MQueue = emqttd_mqueue:new(qname(Node, Topic), [{max_len, State#state.max_queue_len}], emqttd_alarm:alarm_fun()), - {ok, State#state{pool = Pool, id = Id, mqueue = MQueue}}; + {ok, State#state{pool = Pool, id = Id, mqueue = MQueue}, hibernate, + {backoff, 1000, 1000, 10000}}; false -> - {stop, {cannot_connect, Node}} + {stop, {cannot_connect_node, Node}} end. parse_opts([], State) -> diff --git a/src/emqttd_pubsub.erl b/src/emqttd_pubsub.erl index c99aca513..393e4b788 100644 --- a/src/emqttd_pubsub.erl +++ b/src/emqttd_pubsub.erl @@ -164,11 +164,12 @@ pick(Subscriber) -> init([Pool, Id, Env]) -> ?GPROC_POOL(join, Pool, Id), - {ok, #state{pool = Pool, id = Id, env = Env}}. + {ok, #state{pool = Pool, id = Id, env = Env}, hibernate, + {backoff, 2000, 2000, 20000}}. handle_call({subscribe, Topic, Subscriber, Options}, _From, State) -> add_subscriber(Topic, Subscriber, Options), - {reply, ok, setstats(State)}; + {reply, ok, setstats(State), hibernate}; handle_call({unsubscribe, Topic, Subscriber, Options}, _From, State) -> del_subscriber(Topic, Subscriber, Options), @@ -179,7 +180,7 @@ handle_call(Req, _From, State) -> handle_cast({subscribe, Topic, Subscriber, Options}, State) -> add_subscriber(Topic, Subscriber, Options), - {noreply, setstats(State)}; + {noreply, setstats(State), hibernate}; handle_cast({unsubscribe, Topic, Subscriber, Options}, State) -> del_subscriber(Topic, Subscriber, Options),