38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
# 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
 |