Switch to manual Supervisor child specifications instead of Supervisor.Spec

Supervisor.Spec is deprecated and causes warnings on Elixir master, see
https://hexdocs.pm/elixir/Supervisor.Spec.html
This commit is contained in:
rinpatch 2019-06-06 16:36:56 +03:00
parent 489bd30fb9
commit 9ae8f012a5

View File

@ -4,7 +4,6 @@
defmodule Pleroma.Application do defmodule Pleroma.Application do
use Application use Application
import Supervisor.Spec
@name Mix.Project.config()[:name] @name Mix.Project.config()[:name]
@version Mix.Project.config()[:version] @version Mix.Project.config()[:version]
@ -31,21 +30,25 @@ defmodule Pleroma.Application do
children = children =
[ [
# Start the Ecto repository # Start the Ecto repository
supervisor(Pleroma.Repo, []), %{id: Pleroma.Repo, start: {Pleroma.Repo, :start_link, []}, type: :supervisor},
worker(Pleroma.Emoji, []), %{id: Pleroma.Emoji, start: {Pleroma.Emoji, :start_link, []}},
worker(Pleroma.Captcha, []), %{id: Pleroma.Captcha, start: {Pleroma.Captcha, :start_link, []}},
worker( %{
Cachex, id: :cachex_used_captcha_cache,
start:
{Cachex, :start_link,
[ [
:used_captcha_cache, :used_captcha_cache,
[ [
ttl_interval: :timer.seconds(Pleroma.Config.get!([Pleroma.Captcha, :seconds_valid])) ttl_interval:
:timer.seconds(Pleroma.Config.get!([Pleroma.Captcha, :seconds_valid]))
] ]
], ]}
id: :cachex_used_captcha_cache },
), %{
worker( id: :cachex_user,
Cachex, start:
{Cachex, :start_link,
[ [
:user_cache, :user_cache,
[ [
@ -53,11 +56,12 @@ defmodule Pleroma.Application do
ttl_interval: 1000, ttl_interval: 1000,
limit: 2500 limit: 2500
] ]
], ]}
id: :cachex_user },
), %{
worker( id: :cachex_object,
Cachex, start:
{Cachex, :start_link,
[ [
:object_cache, :object_cache,
[ [
@ -65,32 +69,35 @@ defmodule Pleroma.Application do
ttl_interval: 1000, ttl_interval: 1000,
limit: 2500 limit: 2500
] ]
], ]}
id: :cachex_object },
), %{
worker( id: :cachex_rich_media,
Cachex, start:
{Cachex, :start_link,
[ [
:rich_media_cache, :rich_media_cache,
[ [
default_ttl: :timer.minutes(120), default_ttl: :timer.minutes(120),
limit: 5000 limit: 5000
] ]
], ]}
id: :cachex_rich_media },
), %{
worker( id: :cachex_scrubber,
Cachex, start:
{Cachex, :start_link,
[ [
:scrubber_cache, :scrubber_cache,
[ [
limit: 2500 limit: 2500
] ]
], ]}
id: :cachex_scrubber },
), %{
worker( id: :cachex_idem,
Cachex, start:
{Cachex, :start_link,
[ [
:idempotency_cache, :idempotency_cache,
[ [
@ -101,26 +108,49 @@ defmodule Pleroma.Application do
), ),
limit: 2500 limit: 2500
] ]
], ]}
id: :cachex_idem },
), %{id: Pleroma.FlakeId, start: {Pleroma.FlakeId, :start_link, []}},
worker(Pleroma.FlakeId, []), %{
worker(Pleroma.ScheduledActivityWorker, []) id: Pleroma.ScheduledActivityWorker,
start: {Pleroma.ScheduledActivityWorker, :start_link, []}
}
] ++ ] ++
hackney_pool_children() ++ hackney_pool_children() ++
[ [
worker(Pleroma.Web.Federator.RetryQueue, []), %{
worker(Pleroma.Web.OAuth.Token.CleanWorker, []), id: Pleroma.Web.Federator.RetryQueue,
worker(Pleroma.Stats, []), start: {Pleroma.Web.Federator.RetryQueue, :start_link, []}
worker(Task, [&Pleroma.Web.Push.init/0], restart: :temporary, id: :web_push_init), },
worker(Task, [&Pleroma.Web.Federator.init/0], restart: :temporary, id: :federator_init) %{
id: Pleroma.Web.OAuth.Token.CleanWorker,
start: {Pleroma.Web.OAuth.Token.CleanWorker, :start_link, []}
},
%{
id: Pleroma.Stats,
start: {Pleroma.Stats, :start_link, []}
},
%{
id: :web_push_init,
start: {Task, :start_link, [&Pleroma.Web.Push.init/0]},
restart: :temporary
},
%{
id: :federator_init,
start: {Task, :start_link, [&Pleroma.Web.Federator.init/0]},
restart: :temporary
}
] ++ ] ++
streamer_child() ++ streamer_child() ++
chat_child() ++ chat_child() ++
[ [
# Start the endpoint when the application starts # Start the endpoint when the application starts
supervisor(Pleroma.Web.Endpoint, []), %{
worker(Pleroma.Gopher.Server, []) id: Pleroma.Web.Endpoint,
start: {Pleroma.Web.Endpoint, :start_link, []},
type: :supervisor
},
%{id: Pleroma.Gopher.Server, start: {Pleroma.Gopher.Server, :start_link, []}}
] ]
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
@ -169,12 +199,17 @@ defmodule Pleroma.Application do
defp chat_child, do: [] defp chat_child, do: []
else else
defp streamer_child do defp streamer_child do
[worker(Pleroma.Web.Streamer, [])] [%{id: Pleroma.Web.Streamer, start: {Pleroma.Web.Streamer, :start_link, []}}]
end end
defp chat_child do defp chat_child do
if Pleroma.Config.get([:chat, :enabled]) do if Pleroma.Config.get([:chat, :enabled]) do
[worker(Pleroma.Web.ChatChannel.ChatChannelState, [])] [
%{
id: Pleroma.Web.ChatChannel.ChatChannelState,
start: {Pleroma.Web.ChatChannel.ChatChannelState, :start_link, []}
}
]
else else
[] []
end end