PhoenixKit.Emails.Supervisor (phoenix_kit v1.5.1)
View SourceSupervisor for PhoenixKit email tracking system.
This module manages all processes necessary for email tracking:
- SQS Worker for processing events from AWS SQS
- Additional processes (metrics, archiving, etc.)
Integration into Parent Application
Add supervisor to your application's supervision tree:
# In lib/your_app/application.ex
def start(_type, _args) do
children = [
# ... your other processes
# PhoenixKit Email Tracking
PhoenixKit.Emails.Supervisor
]
opts = [strategy: :one_for_one, name: YourApp.Supervisor]
Supervisor.start_link(children, opts)
endConfiguration
Supervisor automatically reads settings from PhoenixKit Settings:
sqs_polling_enabled- enable/disable SQS Workersqs_polling_interval_ms- polling interval- other SQS settings
Process Management
# Stop SQS Worker
PhoenixKit.Emails.SQSWorker.pause()
# Start SQS Worker
PhoenixKit.Emails.SQSWorker.resume()
# Check status
PhoenixKit.Emails.SQSWorker.status()Monitoring
Supervisor provides information about process state:
# Get list of child processes
Supervisor.which_children(PhoenixKit.Emails.Supervisor)
# Get process count
Supervisor.count_children(PhoenixKit.Emails.Supervisor)
Summary
Functions
Returns child spec for integration into parent supervisor.
Stops and restarts SQS Worker.
Starts supervisor for email tracking system.
Returns information about email tracking system status.
Functions
Returns child spec for integration into parent supervisor.
This function is used when you want more precise control over email tracking integration in your application.
Examples
# In lib/your_app/application.ex
def start(_type, _args) do
children = [
# ... other processes
PhoenixKit.Emails.Supervisor.child_spec([])
]
Supervisor.start_link(children, strategy: :one_for_one)
end
Stops and restarts SQS Worker.
Useful for applying new configuration settings.
Examples
iex> PhoenixKit.Emails.Supervisor.restart_sqs_worker()
:ok
Starts supervisor for email tracking system.
Options
:name- supervisor process name (defaults to__MODULE__)
Examples
{:ok, pid} = PhoenixKit.Emails.Supervisor.start_link()
Returns information about email tracking system status.
Examples
iex> PhoenixKit.Emails.Supervisor.system_status()
%{
supervisor_running: true,
sqs_worker_running: true,
sqs_worker_status: %{polling_enabled: true, ...},
children_count: 1
}