summaryrefslogtreecommitdiff
path: root/lib/pleroma/config/oban.ex
blob: 8e0351d52341f6da9aaaf80d44636cfdcca77362 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Config.Oban do
  require Logger

  def warn do
    oban_config = Pleroma.Config.get(Oban)

    crontab =
      [
        Pleroma.Workers.Cron.StatsWorker,
        Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker,
        Pleroma.Workers.Cron.ClearOauthTokenWorker
      ]
      |> Enum.reduce(oban_config[:crontab], fn removed_worker, acc ->
        with acc when is_list(acc) <- acc,
             setting when is_tuple(setting) <-
               Enum.find(acc, fn {_, worker} -> worker == removed_worker end) do
          """
          !!!OBAN CONFIG WARNING!!!
          You are using old workers in Oban crontab settings, which were removed.
          Please, remove setting from crontab in your config file (prod.secret.exs): #{
            inspect(setting)
          }
          """
          |> Logger.warn()

          List.delete(acc, setting)
        else
          _ -> acc
        end
      end)

    Pleroma.Config.put(Oban, Keyword.put(oban_config, :crontab, crontab))
  end
end