api-v2/lib/api/emailsender/autosender.ex
2025-04-16 10:03:13 -03:00

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