27 lines
508 B
Elixir
27 lines
508 B
Elixir
defmodule Api.Autosender do
|
|
|
|
alias Api.StudyMailer
|
|
use GenServer
|
|
|
|
def start_link(period_in_millis) do
|
|
GenServer.start_link(__MODULE__, %{period: period_in_millis})
|
|
end
|
|
|
|
@impl true
|
|
def init(state) do
|
|
next_send(state.period)
|
|
{:ok, state}
|
|
end
|
|
|
|
def next_send(period_in_millis) do
|
|
Process.send_after(self(), :send, period_in_millis)
|
|
end
|
|
|
|
@impl true
|
|
def handle_info(:send, state) do
|
|
StudyMailer.deliver_mail()
|
|
next_send(state.period)
|
|
{:noreply, state}
|
|
end
|
|
end
|