summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordcorbacho <dparracorbacho@piotal.io>2021-03-03 22:45:26 +0100
committerdcorbacho <dparracorbacho@piotal.io>2021-03-03 22:45:26 +0100
commite01ea1209714b857e154f53212c049d449c3d994 (patch)
tree092d56c00a02a5646d8a474c9408e70f3b31088a
parent28db7f6feebb4767ad226983373755cdefcb9cba (diff)
downloadrabbitmq-server-git-mk-otp-24-compat-pg2-to-pg-migration.tar.gz
Use scope on pg groups and skip `go` call from the appmk-otp-24-compat-pg2-to-pg-migration
`rabbit_federation_queue_link:go()` and the exchange equivalent are asynchronous (cast). They are luckily executed after the links are started by the decorators, and probably most of the time they find the links up and ready to `go`. However, this might not always be the case. The retry introduced on the previous commit that is triggered by the link itself once if finds that federation is down, guarantees that the `go` will be handled by the link process. Thus, the calls to rabbit_federation_queue_link:go() and rabbit_federation_exchange_link:go() can be removed from the app.
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_app.erl7
-rw-r--r--deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl2
2 files changed, 2 insertions, 7 deletions
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_app.erl b/deps/rabbitmq_federation/src/rabbit_federation_app.erl
index b205ee4185..c3cfc28f04 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_app.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_app.erl
@@ -10,7 +10,7 @@
-include("rabbit_federation.hrl").
-behaviour(application).
--export([start/2, stop/1, start_federation_links/0]).
+-export([start/2, stop/1]).
%% Dummy supervisor - see Ulf Wiger's comment at
%% http://erlang.2086793.n4.nabble.com/initializing-library-applications-without-processes-td2094473.html
@@ -29,17 +29,12 @@
-export([init/1]).
start(_Type, _StartArgs) ->
- _ = timer:apply_after(500, ?MODULE, start_federation_links, []),
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
stop(_State) ->
rabbit_federation_pg:stop_scope(),
ok.
-start_federation_links() ->
- rabbit_federation_exchange_link:go(),
- rabbit_federation_queue_link:go().
-
%%----------------------------------------------------------------------------
init([]) ->
diff --git a/deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl b/deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl
index d723d86aec..1919d5d7e2 100644
--- a/deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl
+++ b/deps/rabbitmq_federation/src/rabbit_federation_queue_link.erl
@@ -43,7 +43,7 @@ join(Name) ->
ok = pg:join(?FEDERATION_PG_SCOPE, pgname(Name), self()).
all() ->
- pg:get_members(pgname(rabbit_federation_queues)).
+ pg:get_members(?FEDERATION_PG_SCOPE, pgname(rabbit_federation_queues)).
q(QName) ->
case pg:get_members(?FEDERATION_PG_SCOPE, pgname({rabbit_federation_queue, QName})) of