Celery.Canvas.Signature (celery v0.1.0)

Copy Markdown View Source

Serializable task invocation signature (celery.canvas.Signature / subtask).

Matches Python Celery's wire dictionary representation so signatures can be passed in callbacks, errbacks, chain, and chord fields between Python and Elixir workers:

%{
  "task" => "src.tasks.command",
  "args" => [...],
  "kwargs" => %{...},
  "options" => %{...},
  "subtask_type" => nil,
  "immutable" => false
}

Summary

Functions

Dispatches a %Celery.Canvas.Signature{} asynchronously via Celery.send_task/3.

Dispatches a %Celery.Canvas.Signature{} with positional/keyword arguments (delay).

Freezes a signature by assigning a task_id in its options if not already set, returning {updated_signature, %Celery.Result{}}.

Reconstructs a %Celery.Canvas.Signature{} from a wire map.

Creates a new %Celery.Canvas.Signature{}.

Serializes a %Celery.Canvas.Signature{} to a Python Celery wire-compatible map.

Types

t()

@type t() :: %Celery.Canvas.Signature{
  app: Celery.t() | nil,
  args: list(),
  immutable: boolean(),
  kwargs: map(),
  options: map(),
  subtask_type: String.t() | nil,
  task: String.t()
}

Functions

apply_async(sig, extra_opts \\ [])

@spec apply_async(t(), keyword()) :: {:ok, Celery.Result.t()} | {:error, term()}

Dispatches a %Celery.Canvas.Signature{} asynchronously via Celery.send_task/3.

delay(sig, partial_args \\ [], partial_kwargs \\ %{})

@spec delay(t(), list(), map() | keyword()) ::
  {:ok, Celery.Result.t()} | {:error, term()}

Dispatches a %Celery.Canvas.Signature{} with positional/keyword arguments (delay).

freeze(sig, opts \\ [])

@spec freeze(t(), keyword()) :: {t(), Celery.Result.t()}

Freezes a signature by assigning a task_id in its options if not already set, returning {updated_signature, %Celery.Result{}}.

from_map(sig)

@spec from_map(map() | t()) :: t()

Reconstructs a %Celery.Canvas.Signature{} from a wire map.

new(task_name, opts \\ [])

@spec new(String.t(), keyword()) :: t()

Creates a new %Celery.Canvas.Signature{}.

to_map(sig)

@spec to_map(t()) :: map()

Serializes a %Celery.Canvas.Signature{} to a Python Celery wire-compatible map.