aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstwf <steven.fuchs@dockyard.com>2019-08-14 11:57:50 -0400
committerstwf <steven.fuchs@dockyard.com>2019-08-14 11:57:50 -0400
commit15ef521009f4c232f417ca9164c6be3f4ee4e018 (patch)
treebaac297ef3751a4cccc6ee60cef4ca991b2689d1
parent51bdf0cab6dc96bfd48a6d98d9f21584b42c0e44 (diff)
downloadpleroma-15ef521009f4c232f417ca9164c6be3f4ee4e018.tar.gz
Isolate OAuth.Token.CleanWorker
-rw-r--r--lib/pleroma/application.ex9
-rw-r--r--lib/pleroma/web/oauth/token/clean_worker.ex25
2 files changed, 18 insertions, 16 deletions
diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex
index 3bb0718e4..c460a3bc5 100644
--- a/lib/pleroma/application.ex
+++ b/lib/pleroma/application.ex
@@ -59,6 +59,7 @@ defmodule Pleroma.Application do
restart: :temporary
}
] ++
+ oauth_cleanup_child(oauth_cleanup_enabled?()) ++
streamer_child(@env) ++
chat_child(@env, chat_enabled?()) ++
[
@@ -134,12 +135,20 @@ defmodule Pleroma.Application do
defp chat_enabled?, do: Pleroma.Config.get([:chat, :enabled])
+ defp oauth_cleanup_enabled?,
+ do: Pleroma.Config.get([:oauth2, :clean_expired_tokens], false)
+
defp streamer_child(:test), do: []
defp streamer_child(_) do
[Pleroma.Web.Streamer]
end
+ defp oauth_cleanup_child(true),
+ do: [Pleroma.Web.OAuth.Token.CleanWorker]
+
+ defp oauth_cleanup_child(_), do: []
+
defp chat_child(:test, _), do: []
defp chat_child(_env, true) do
diff --git a/lib/pleroma/web/oauth/token/clean_worker.ex b/lib/pleroma/web/oauth/token/clean_worker.ex
index e39a4986a..f50098302 100644
--- a/lib/pleroma/web/oauth/token/clean_worker.ex
+++ b/lib/pleroma/web/oauth/token/clean_worker.ex
@@ -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