Lightning.Extensions.RunQueue behaviour (Lightning v2.13.5)

View Source

Extension to customize the scheduling of workloads on Lightning Runtime.

Summary

Callbacks

claim(demand, worker_name)

@callback claim(demand :: non_neg_integer(), worker_name :: String.t()) ::
  {:ok, [Lightning.Run.t()]}

dequeue(run)

@callback dequeue(run :: Lightning.Run.t()) :: {:ok, Lightning.Run.t()}

enqueue(run)

@callback enqueue(run :: Ecto.Multi.t()) ::
  {:ok, %{required(Ecto.Multi.name()) => any()}}
  | {:error, Ecto.Multi.name(), any(), %{required(Ecto.Multi.name()) => any()}}

enqueue_many(runs)

@callback enqueue_many(runs :: Ecto.Multi.t()) ::
  {:ok, %{required(Ecto.Multi.name()) => any()}}
  | {:error, Ecto.Multi.name(), any(), %{required(Ecto.Multi.name()) => any()}}