Isolate OAuth.Token.CleanWorker
authorstwf <steven.fuchs@dockyard.com>
Wed, 14 Aug 2019 15:57:50 +0000 (11:57 -0400)
committerstwf <steven.fuchs@dockyard.com>
Wed, 14 Aug 2019 15:57:50 +0000 (11:57 -0400)
lib/pleroma/application.ex
lib/pleroma/web/oauth/token/clean_worker.ex

index 3bb0718e40c6e4ada3177587564d0794277c2e13..c460a3bc51bd88c0a7b3636d3bae3fd1b9ddf269 100644 (file)
@@ -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
index e39a4986a5fc16311280155d5ebc1abeb46ba3d8..f50098302649b25873792a0dc885876c120951c7 100644 (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