Belay.Job (Belay v1.0.0-rc.6)

Copy Markdown View Source

The durable job record.

States:

  • "ready" — claimable once ready_at is due (covers scheduled, retry backoff, and snoozes; there is no separate staging step)
  • "awaiting" — parked on a named signal; ready_at doubles as the wake deadline (nil waits forever)
  • "running" — claimed under a lease
  • "held" — created but ineligible (unmet workflow deps, operator hold)
  • "succeeded" / "failed" / "cancelled" — terminal
  • "paused" — reserved for operator freezes of parked jobs

Summary

Functions

Decode a succeeded job's result (ETF or JSON — see Belay.Codec).

Types

t()

@type t() :: %Belay.Job{
  attempt: term(),
  await_name: term(),
  await_scope: term(),
  budget_tokens: term(),
  budget_usd_micros: term(),
  cancel_requested: term(),
  cron_name: term(),
  cron_slot: term(),
  duplicate?: term(),
  errors: term(),
  finished_at: term(),
  id: term(),
  input: term(),
  inserted_at: term(),
  kind: term(),
  lease_until: term(),
  leased_by: term(),
  max_attempts: term(),
  meta: term(),
  parent_id: term(),
  partition_key: term(),
  priority: term(),
  queue: term(),
  ready_at: term(),
  result: term(),
  spent_tokens: term(),
  spent_usd_micros: term(),
  started_at: term(),
  state: term(),
  unique_key: term(),
  unique_mode: term(),
  wf_deps: term(),
  wf_ignore: term(),
  wf_name: term(),
  workflow_id: term()
}

Functions

incomplete_states()

result(job)

Decode a succeeded job's result (ETF or JSON — see Belay.Codec).

terminal?(job)

terminal_states()