Class: SagaForge::SweeperJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
lib/saga_forge/sweeper_job.rb

Overview

The delivery guarantee (§A.2): rows are obligations, enqueues are hints. Sweeps three stranded populations; harmless double-enqueues are absorbed by ExecutionJob's processed-skip/halt/stall checks. Host-scheduled (config/recurring.yml) at config.sweep_interval cadence.

Constant Summary collapse

CONCURRENCY_KEY =

A fixed singleton key, not per-instance: this is one recurring job, not one lock per saga — an over-long sweep must not overlap the next tick. See ExecutionJob::CONCURRENCY_KEY for why this is a constant.

"SagaForge::Sweeper"

Instance Method Summary collapse

Instance Method Details

#performObject



18
19
20
21
22
# File 'lib/saga_forge/sweeper_job.rb', line 18

def perform
  sweep_aged_pending
  sweep_stranded_compensating
  sweep_stranded_stalled
end