Packages
logflare_ex
0.2.0-dev.980340db
0.2.0-dev.b339a6b8
0.2.0-dev.980340db
0.2.0-dev.5d01deca
0.2.0-dev.236c1c6b
0.2.0-dev.082a725d
0.2.0-dev.1718089325.ea5f751
0.2.0-dev.1718053351.fca7edd
0.2.0-dev.1718049151.46c51d9
0.2.0-dev.1718049098.9ad6f45
0.2.0-dev.1715303639.8521594
0.2.0-dev.1701249644.103466d
0.1.1
0.1.1-dev-5d6bc7c9
0.1.0
0.1.0-dev-a70912b8
0.1.0-dev-79b32387
Logflare Elixir SDK
Current section
Files
Jump to
Current section
Files
lib/batcher_sup.ex
defmodule LogflareEx.BatcherSup do
# Automatically defines child_spec/1
use DynamicSupervisor
alias LogflareEx.Batcher
alias LogflareEx.Client
require Logger
def start_link(_init_arg) do
DynamicSupervisor.start_link(__MODULE__, [], name: __MODULE__)
end
@impl true
def init(_init_arg) do
DynamicSupervisor.init(strategy: :one_for_one)
end
def count_batchers do
%{workers: count} = DynamicSupervisor.count_children(__MODULE__)
count
end
def ensure_started(%Client{} = client) do
client
|> start_batcher()
|> then(fn
{:error, {:already_started, _pid}} ->
:ok
{:ok, _pid} ->
:ok
err ->
Logger.error("Could not ensure that batcher was started, error: #{inspect(err)}")
{:error, :not_started}
end)
end
def start_batcher(opts) when is_list(opts) do
client = Client.new(opts)
start_batcher(client)
end
def start_batcher(%Client{} = client) do
DynamicSupervisor.start_child(__MODULE__, {Batcher, client})
end
def terminate_batchers do
for {_id, pid, _, _args} <- DynamicSupervisor.which_children(__MODULE__) do
DynamicSupervisor.terminate_child(__MODULE__, pid)
end
:ok
end
end