Fleet.Job (fleet v0.1.0)

Copy Markdown View Source

Represents a unit of work to be processed by a Fleet.Worker.

Summary

Functions

Decodes a raw PgQue message map into a structured Fleet.Job.

Constructs a new Fleet.Job struct.

Encodes a Fleet.Job to a JSON-compatible map for queue serialization.

Types

t()

@type t() :: %Fleet.Job{
  args: map() | list() | term(),
  attempt: non_neg_integer(),
  batch_id: integer() | nil,
  errors: list(),
  id: integer() | nil,
  inserted_at: DateTime.t() | nil,
  max_attempts: pos_integer(),
  priority: integer(),
  queue: String.t(),
  scheduled_at: DateTime.t() | nil,
  state: atom(),
  tags: [String.t()],
  worker: module() | String.t()
}

Functions

from_message(map)

@spec from_message(map()) :: {:ok, t()} | {:error, term()}

Decodes a raw PgQue message map into a structured Fleet.Job.

new(worker, args, opts \\ [])

@spec new(module() | String.t(), term(), keyword()) :: t()

Constructs a new Fleet.Job struct.

Options

  • :queue - Queue name (string or atom).
  • :max_attempts - Maximum number of retries before dead-lettering (default 5).
  • :tags - List of string tags.
  • :priority - Priority integer.
  • :scheduled_at - DateTime when the job should be executed.

to_payload(job)

@spec to_payload(t()) :: String.t()

Encodes a Fleet.Job to a JSON-compatible map for queue serialization.