honkoma/lib/pleroma/application.ex

38 lines
1.3 KiB
Elixir
Raw Normal View History

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]),
worker(Cachex, [:user_cache, [
2017-04-30 08:06:57 +00:00
default_ttl: 25000,
ttl_interval: 1000,
2017-04-30 08:06:57 +00:00
limit: 2500
2017-05-05 16:58:29 +00:00
]]),
2017-11-11 13:59:25 +00:00
worker(Pleroma.Web.Federator, []),
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, [])]
++ 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
defp chat_enabled do
Application.get_env(:pleroma, :chat, []) |> Keyword.get(:enabled)
end
2017-03-17 16:09:58 +00:00
end