DoubleEntryLedger.CommandQueueItem (double_entry_ledger v0.1.0)

View Source

Schema for the command queue table, used for worker-based queue management. This schema tracks commands that need to be processed by workers.

Summary

Types

state()

@type state() ::
  :dead_letter | :processing | :occ_timeout | :failed | :processed | :pending

t()

@type t() :: %DoubleEntryLedger.CommandQueueItem{
  __meta__: term(),
  command: term(),
  command_id: Ecto.UUID.t() | nil,
  errors: [map()] | nil,
  id: Ecto.UUID.t() | nil,
  inserted_at: term(),
  next_retry_after: DateTime.t() | nil,
  occ_retry_count: integer() | nil,
  processing_completed_at: DateTime.t() | nil,
  processing_started_at: DateTime.t() | nil,
  processor_id: String.t() | nil,
  processor_version: integer() | nil,
  retry_count: integer() | nil,
  status: state() | nil,
  updated_at: term()
}

Functions

dead_letter_changeset(command_queue_item, error)

@spec dead_letter_changeset(t(), any()) :: Ecto.Changeset.t()

processing_complete_changeset(command_queue_item)

@spec processing_complete_changeset(t()) :: Ecto.Changeset.t()

processing_start_changeset(command_queue_item, processor_id, retry_count)

@spec processing_start_changeset(t(), String.t(), non_neg_integer()) ::
  Ecto.Changeset.t()

revert_to_pending_changeset(command_queue_item, error \\ nil)

@spec revert_to_pending_changeset(t(), any()) :: Ecto.Changeset.t()

schedule_retry_changeset(command_queue_item, error, state, delay)

@spec schedule_retry_changeset(
  t(),
  any(),
  state(),
  non_neg_integer()
) :: Ecto.Changeset.t()

schedule_update_retry_changeset(command_queue_item, update_command_error, retry_delay)