Locker.Server
A utility module that helps in creating GenServer
processes that
are registered in locker.
This module implements functions for
keeping up the registration. It accepts two parameters, namely
:lease_length
and :lease_threshold
, which defaults to 5 seconds
and one second. Based on these options, the process registration is
updated in the progess registry.
Example
You can create a standard GenServer
process that is registered
under locker
like this:
defmodule MyServer do
use Locker.Server, lease_length: 10000
def init(_) do
{:ok, %{}}
end
end
Note that Locker.Server
provides start/2
and start_link/2
functions that you don’t need to implement yourself. If the opts
contains key name
, this name will be registered under
Locker.Registry
.
Note also that if you need to override terminate/2
to do some
cleaning up, you need to remember to add call to `super(reason,
state)` so that the process will be unregistered on termination.
defmodule MyServer do
use Locker.Server
def init(_) do
{:ok, %{}}
end
def terminate(reason, state) do
super(reason, state) # will call Locker.Server.terminate/2.
end
end