Isolate OAuth.Token.CleanWorker

This commit is contained in:
stwf 2019-08-14 11:57:50 -04:00
commit 15ef521009
2 changed files with 18 additions and 16 deletions

View file

@ -8,35 +8,28 @@ defmodule Pleroma.Web.OAuth.Token.CleanWorker do
"""
use GenServer
# 10 seconds
@start_interval 10_000
@ten_seconds 10_000
@one_day 86_400_000
@interval Pleroma.Config.get(
# 24 hours
[:oauth2, :clean_expired_tokens_interval],
86_400_000
@one_day
)
@queue :background
alias Pleroma.Web.OAuth.Token
def start_link(_), do: GenServer.start_link(__MODULE__, nil)
def start_link(_), do: GenServer.start_link(__MODULE__, %{})
def init(_) do
if Pleroma.Config.get([:oauth2, :clean_expired_tokens], false) do
Process.send_after(self(), :perform, @start_interval)
{:ok, nil}
else
:ignore
end
Process.send_after(self(), :perform, @ten_seconds)
{:ok, nil}
end
@doc false
def handle_info(:perform, state) do
Token.delete_expired_tokens()
Process.send_after(self(), :perform, @interval)
PleromaJobQueue.enqueue(@queue, __MODULE__, [:clean])
{:noreply, state}
end
# Job Worker Callbacks
def perform(:clean), do: Token.delete_expired_tokens()
end