X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fworkers%2Fworker_helper.ex;h=4c0a55774d6df3364b56ac2a639d3a6ac413060a;hb=a079ec3a3cdfd42d2cbd51c7698c2c87828e5778;hp=b12f198d47f5772b9a856448eff129ec61a3c2aa;hpb=dd017c65a4b86501c435f5cb01804300e6b7c6dd;p=akkoma
diff --git a/lib/pleroma/workers/worker_helper.ex b/lib/pleroma/workers/worker_helper.ex
index b12f198d4..4c0a55774 100644
--- a/lib/pleroma/workers/worker_helper.ex
+++ b/lib/pleroma/workers/worker_helper.ex
@@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2019 Pleroma Authors
+# Copyright © 2017-2021 Pleroma Authors
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Workers.WorkerHelper do
@@ -27,6 +27,13 @@ defmodule Pleroma.Workers.WorkerHelper do
queue = Keyword.fetch!(opts, :queue)
quote do
+ # Note: `max_attempts` is intended to be overridden in `new/2` call
+ use Oban.Worker,
+ queue: unquote(queue),
+ max_attempts: 1
+
+ alias Oban.Job
+
def enqueue(op, params, worker_args \\ []) do
params = Map.merge(%{"op" => op}, params)
queue_atom = String.to_atom(unquote(queue))
@@ -34,7 +41,13 @@ defmodule Pleroma.Workers.WorkerHelper do
unquote(caller_module)
|> apply(:new, [params, worker_args])
- |> Pleroma.Repo.insert()
+ |> Oban.insert()
+ end
+
+ @impl Oban.Worker
+ def timeout(_job) do
+ queue_atom = String.to_atom(unquote(queue))
+ Config.get([:workers, :timeout, queue_atom], :timer.minutes(1))
end
end
end