Table of Contents

Class JobAttempt

Namespace
Millrace.Storage
Assembly
Millrace.dll

One execution of a job that did not succeed (§11.27).

public sealed record JobAttempt : IEquatable<JobAttempt>
Inheritance
JobAttempt
Implements
Inherited Members

Remarks

Only attempts worth explaining are recorded. A job that succeeds on its first attempt writes no row at all, so the common path costs nothing and the table is bounded by failure volume rather than by throughput. The successful attempt is already fully described by the job row itself — its worker, its finish time, its state — so a row for it would be duplication that every healthy queue pays for.

This is the timeline §7 promised and the 0.1 schema could not source. It reports when each unsuccessful attempt ended, on which worker, and why; it does not report when the attempt started, because nothing records that and adding it would mean widening the claim path for a nicety.

Properties

Attempt

The attempt number, matching Attempt at the time.

Error

The exception, for Failed. Always null for an interruption — an execution that vanished had nothing to report, and that absence is the diagnosis.

Outcome

Why the attempt is here rather than having simply succeeded.

RecordedAt

When the attempt ended.

WorkerId

The worker that held the lease, where known.