Table of Contents

Method ClaimAsync

Namespace
Millrace.Storage.SqlServer
Assembly
Millrace.Storage.SqlServer.dll

ClaimAsync(ClaimRequest, CancellationToken)

Exclusively claims up to MaxCount jobs (§4.2.1–2).

public ValueTask<IReadOnlyList<JobRecord>> ClaimAsync(ClaimRequest request, CancellationToken ct)

Parameters

request ClaimRequest
ct CancellationToken

Returns

ValueTask<IReadOnlyList<JobRecord>>

Remarks

A job is claimable iff State == Enqueued || (State == Processing && LeaseUntil <= now) — never Scheduled/Failed/Awaiting regardless of DueAt (due activation happens only via ActivateDueJobsAsync(DateTimeOffset, int, CancellationToken)). Two concurrent claims never return the same job. Claiming sets State = Processing, WorkerId, LeaseUntil = now + LeaseDuration, and increments Attempt. Selection order: Priority DESC, then FIFO by enqueue completion order within equal priority (recommended: provider-local monotonic insertion sequence), across the union of requested queues; observable only for non-overlapping claims — interleaving under concurrency is permitted (SKIP LOCKED semantics). Returning fewer than MaxCount is always conformant.