global singleton gen_server

Roger Lipscombe roger@REDACTED
Thu Dec 16 15:48:13 CET 2021


Define "cluster start". In normal operation, there's nothing stopping
another node from joining the cluster at some arbitrary later time,
even days later. The first node to come up is a degenerate, single
node cluster, no?

On Thu, 16 Dec 2021 at 11:00, Roberto Ostinelli <ostinelli@REDACTED> wrote:
>
> Dear all,
> I'm trying to run an operation only once on cluster start but there's clearly something that I'm missing in the global module (see other related question here [1]).
>
> Therefore this time I'm trying to have a single global gen_server which I start directly from application start/2 callback with:
> gen_server:start_link({global, ?MODULE}, ?MODULE, [], Options).
>
> Nodes are already connected at that point (I can see them with nodes()), however for some reason this registration works on all the nodes and I find myself with multiple gen_server registered globally.
>
> What is the proper way to register a global singleton gen_server at cluster level on application start? mY need is to run an operation only _once_ a cluster boots up.
>
> [1] http://erlang.org/pipermail/erlang-questions/2021-December/101781.html


More information about the erlang-questions mailing list