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:
parent
489bd30fb9
commit
9ae8f012a5
1 changed files with 120 additions and 85 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue