Skip to main content

Module attempt_progress

Module attempt_progress 

Source
Expand description

Reading one attempt’s volatile worker progress note, with typed absence. Reading the volatile worker progress note of one attempt — honestly.

A worker heartbeat may carry an opaque progress payload (“what I am doing right now”). The server holds the most recent one per in-flight attempt in HeartbeatTracker, in memory, and writes it nowhere. That makes the read path a measurement problem rather than a lookup: the absence of a note has two completely different causes, and collapsing them would tell an operator that a busy worker has gone silent every time the server was restarted.

So the read returns AttemptProgress, which never says “no note” without saying which kind of no:

  • AttemptProgress::Reported — the tracker holds a note for this attempt.
  • AttemptProgress::NoneSent — the tracker holds the ATTEMPT and no note on it. This is a measurement: the worker really has reported nothing.
  • AttemptProgress::Untracked — the tracker does not hold the attempt, so there is nothing to measure. A restart is the usual cause (the notes were in a process that no longer exists), and the other causes — the owner was swept off the tracker, or nothing has leased the dispatch — are equally unmeasurable from here. Every one of them is this variant; none of them is ever reported as silence.

Enums§

AttemptProgress
What this server process can say about one attempt’s progress note.

Functions§

attempt_progress
The progress note this process holds for (workflow, activity, attempt).