logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

publisher_worker.ex (920B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Workers.PublisherWorker do
  5. alias Pleroma.Activity
  6. alias Pleroma.Web.Federator
  7. use Pleroma.Workers.WorkerHelper, queue: "federator_outgoing"
  8. def backoff(%Job{attempt: attempt}) when is_integer(attempt) do
  9. Pleroma.Workers.WorkerHelper.sidekiq_backoff(attempt, 5)
  10. end
  11. @impl Oban.Worker
  12. def perform(%Job{args: %{"op" => "publish", "activity_id" => activity_id}}) do
  13. activity = Activity.get_by_id(activity_id)
  14. Federator.perform(:publish, activity)
  15. end
  16. def perform(%Job{args: %{"op" => "publish_one", "params" => params}}) do
  17. params = Map.new(params, fn {k, v} -> {String.to_atom(k), v} end)
  18. Federator.perform(:publish_one, params)
  19. end
  20. @impl Oban.Worker
  21. def timeout(_job), do: :timer.seconds(10)
  22. end