2017-03-17 16:09:58 +00:00
|
|
|
defmodule Pleroma.Application do
|
|
|
|
use Application
|
|
|
|
|
|
|
|
# See http://elixir-lang.org/docs/stable/elixir/Application.html
|
|
|
|
# for more information on OTP Applications
|
|
|
|
def start(_type, _args) do
|
|
|
|
import Supervisor.Spec
|
|
|
|
|
|
|
|
# Define workers and child supervisors to be supervised
|
|
|
|
children = [
|
|
|
|
# Start the Ecto repository
|
|
|
|
supervisor(Pleroma.Repo, []),
|
|
|
|
# Start the endpoint when the application starts
|
|
|
|
supervisor(Pleroma.Web.Endpoint, []),
|
|
|
|
# Start your own worker by calling: Pleroma.Worker.start_link(arg1, arg2, arg3)
|
|
|
|
# worker(Pleroma.Worker, [arg1, arg2, arg3]),
|
2017-04-17 10:36:17 +01:00
|
|
|
worker(Cachex, [:user_cache, [
|
2017-04-30 09:06:57 +01:00
|
|
|
default_ttl: 25000,
|
2017-04-17 10:36:17 +01:00
|
|
|
ttl_interval: 1000,
|
2017-04-30 09:06:57 +01:00
|
|
|
limit: 2500
|
2017-05-05 17:58:29 +01:00
|
|
|
]]),
|
2017-11-11 13:59:25 +00:00
|
|
|
worker(Pleroma.Web.Federator, []),
|
2018-01-13 16:24:16 +00:00
|
|
|
worker(Pleroma.Stats, []),
|
2017-03-17 16:09:58 +00:00
|
|
|
]
|
2017-11-18 11:22:07 +00:00
|
|
|
++ if Mix.env == :test, do: [], else: [worker(Pleroma.Web.Streamer, [])]
|
2018-02-01 17:23:26 +00:00
|
|
|
++ if !chat_enabled(), do: [], else: [worker(Pleroma.Web.ChatChannel.ChatChannelState, [])]
|
2017-03-17 16:09:58 +00:00
|
|
|
|
|
|
|
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
|
|
|
|
# for other strategies and supported options
|
|
|
|
opts = [strategy: :one_for_one, name: Pleroma.Supervisor]
|
|
|
|
Supervisor.start_link(children, opts)
|
|
|
|
end
|
2018-02-01 17:23:26 +00:00
|
|
|
|
|
|
|
defp chat_enabled do
|
|
|
|
Application.get_env(:pleroma, :chat, []) |> Keyword.get(:enabled)
|
|
|
|
end
|
2017-03-17 16:09:58 +00:00
|
|
|
end
|