diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/user.ex | 10 | ||||
| -rw-r--r-- | lib/pleroma/workers/user_refresh_worker.ex | 14 | 
2 files changed, 18 insertions, 6 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 440dc9210..7a8a68931 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -38,6 +38,7 @@ defmodule Pleroma.User do    alias Pleroma.Web.OAuth    alias Pleroma.Web.RelMe    alias Pleroma.Workers.BackgroundWorker +  alias Pleroma.Workers.UserRefreshWorker    require Logger    require Pleroma.Constants @@ -2165,12 +2166,9 @@ defmodule Pleroma.User do    end    defp maybe_refresh(user) do -    fun = fn -> needs_update?(user) && fetch_by_ap_id(user.ap_id) end - -    if Config.get([__MODULE__, :sync_refreshing], false) do -      fun.() -    else -      Task.start(fun) +    if needs_update?(user) do +      UserRefreshWorker.new(%{"ap_id" => user.ap_id}) +      |> Oban.insert()      end    end diff --git a/lib/pleroma/workers/user_refresh_worker.ex b/lib/pleroma/workers/user_refresh_worker.ex new file mode 100644 index 000000000..5842143f8 --- /dev/null +++ b/lib/pleroma/workers/user_refresh_worker.ex @@ -0,0 +1,14 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Workers.UserRefreshWorker do +  use Pleroma.Workers.WorkerHelper, queue: "background", max_attempts: 1, unique: [period: 300] + +  alias Pleroma.User + +  @impl Oban.Worker +  def perform(%Job{args: %{"ap_id" => ap_id}}) do +    User.fetch_by_ap_id(ap_id) +  end +end  | 
