summaryrefslogtreecommitdiff
path: root/lib/pleroma/config/oban.ex
blob: 53ea7d7be316f90e62355007bef0cfeace1e91b3 (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
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 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