ElixirServerCore.Application (ServCore v0.3.0)

Copy Markdown View Source

Main application supervisor. Configurable via Application.get_env(:servcore, ...).

Configuration options (single pipeline, backward compatible)

config :servcore,
  router: MyApp.Router,           # default: Core.HTTP.Router
  port: 4000,                     # default: env PORT or 4000
  ip: {0, 0, 0, 0},              # default: {0,0,0,0}
  worker: Core.Workers.Worker,  # default: Core.Workers.Worker
  worker_pool_size: 8,            # default: CPU cores
  job_store: Core.JobStore.SQLite, # default: Core.JobStore.Memory
  job_store_opts: [database: "priv/jobs.db"],
  start_http: true,               # default: true
  start_workers: true             # default: true

Configuration options (multiple pipelines)

config :servcore,
  router: MyApp.Router,
  port: 4000,
  start_http: true,
  pipelines: [
    [
      queue: Core.Workers.JobQueue,
      queue_name: Core.Workers.JobQueue,
      pool: Core.Workers.WorkerPool,
      worker: Core.Workers.Worker,
      pool_size: 4,
      job_store: Core.JobStore.SQLite,
      job_store_opts: [database: "priv/jobs.db"]
    ],
    [
      queue: Core.Workers.JobQueue,
      queue_name: MyApp.MediaQueue,
      pool: Core.Workers.WorkerPool,
      pool_name: MyApp.MediaPool,
      worker: MyApp.MediaWorker,
      pool_size: 2,
      job_store: Core.JobStore.SQLite,
      job_store_opts: [database: "priv/media_jobs.db"]
    ]
  ]

Set start_http: false to manage the HTTP server yourself (e.g. in a Phoenix app).