Diffuser/lib/diffuser/generator/prompt_request_supervisor.ex

28 lines
626 B
Elixir

defmodule Diffuser.Generator.PromptRequestSupervisor do
use DynamicSupervisor
alias Diffuser.Generator.PromptRequest
def start_link(init_arg) do
DynamicSupervisor.start_link(__MODULE__, init_arg, name: __MODULE__)
end
@impl true
def init(_init_arg) do
DynamicSupervisor.init(strategy: :one_for_one)
end
def start_prompt_request(%PromptRequest{} = prompt_request) do
Task.Supervisor.start_child(
__MODULE__,
Diffuser.Generator.PromptRequestGenserver,
:new,
[
%{
prompt_request: prompt_request
}
],
restart: :transient
)
end
end