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
1 changed files with 120 additions and 85 deletions

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,96 +30,127 @@ def start(_type, _args) 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:
:used_captcha_cache, {Cachex, :start_link,
[ [
ttl_interval: :timer.seconds(Pleroma.Config.get!([Pleroma.Captcha, :seconds_valid])) :used_captcha_cache,
] [
], ttl_interval:
id: :cachex_used_captcha_cache :timer.seconds(Pleroma.Config.get!([Pleroma.Captcha, :seconds_valid]))
), ]
worker( ]}
Cachex, },
[ %{
:user_cache, id: :cachex_user,
[ start:
default_ttl: 25_000, {Cachex, :start_link,
ttl_interval: 1000, [
limit: 2500 :user_cache,
] [
], default_ttl: 25_000,
id: :cachex_user ttl_interval: 1000,
), limit: 2500
worker( ]
Cachex, ]}
[ },
:object_cache, %{
[ id: :cachex_object,
default_ttl: 25_000, start:
ttl_interval: 1000, {Cachex, :start_link,
limit: 2500 [
] :object_cache,
], [
id: :cachex_object default_ttl: 25_000,
), ttl_interval: 1000,
worker( limit: 2500
Cachex, ]
[ ]}
:rich_media_cache, },
[ %{
default_ttl: :timer.minutes(120), id: :cachex_rich_media,
limit: 5000 start:
] {Cachex, :start_link,
], [
id: :cachex_rich_media :rich_media_cache,
), [
worker( default_ttl: :timer.minutes(120),
Cachex, limit: 5000
[ ]
:scrubber_cache, ]}
[ },
limit: 2500 %{
] id: :cachex_scrubber,
], start:
id: :cachex_scrubber {Cachex, :start_link,
), [
worker( :scrubber_cache,
Cachex, [
[ limit: 2500
:idempotency_cache, ]
[ ]}
expiration: },
expiration( %{
default: :timer.seconds(6 * 60 * 60), id: :cachex_idem,
interval: :timer.seconds(60) start:
), {Cachex, :start_link,
limit: 2500 [
] :idempotency_cache,
], [
id: :cachex_idem expiration:
), expiration(
worker(Pleroma.FlakeId, []), default: :timer.seconds(6 * 60 * 60),
worker(Pleroma.ScheduledActivityWorker, []) interval: :timer.seconds(60)
),
limit: 2500
]
]}
},
%{id: Pleroma.FlakeId, start: {Pleroma.FlakeId, :start_link, []}},
%{
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 @@ defp streamer_child, 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