CaptureJobModel
Defined in: packages/core/src/models/capture-job.ts:50
Data operations of the database queue. Every write is an unconditional update by id or an insert; the only atomic primitive is the unique-key insert of an attempt row (claim), which is what fences concurrent claimers on every supported database.
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new CaptureJobModel(
db,tables?):CaptureJobModel
Defined in: packages/core/src/models/capture-job.ts:55
Parameters
Section titled “Parameters”tables?
Section titled “tables?”Returns
Section titled “Returns”CaptureJobModel
Methods
Section titled “Methods”attempts()
Section titled “attempts()”attempts(
jobId):Promise<CaptureJobRow[]>
Defined in: packages/core/src/models/capture-job.ts:219
Attempt rows of a job, by attempt number.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<CaptureJobRow[]>
claim()
Section titled “claim()”claim(
input,now):Promise<boolean>
Defined in: packages/core/src/models/capture-job.ts:96
Claim attempt attempt of a job by inserting its row <jobId>:<attempt>. Exactly one caller
succeeds on every database; the others hit the primary key, which this reports as false
(told apart from real failures by re-reading the row, as CaptureShardModel.claimFinalize).
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<boolean>
clearVisibility()
Section titled “clearVisibility()”clearVisibility(
id,now):Promise<void>
Defined in: packages/core/src/models/capture-job.ts:148
Take a row out of the poll’s index range without changing its status.
Parameters
Section titled “Parameters”string
string
Returns
Section titled “Returns”Promise<void>
create()
Section titled “create()”create(
input,now):Promise<CaptureJobRow>
Defined in: packages/core/src/models/capture-job.ts:66
Insert a queued job row.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<CaptureJobRow>
defer()
Section titled “defer()”defer(
id,visibleAt,now):Promise<void>
Defined in: packages/core/src/models/capture-job.ts:143
Move a row’s visibility time (and nothing else).
Parameters
Section titled “Parameters”string
visibleAt
Section titled “visibleAt”string
string
Returns
Section titled “Returns”Promise<void>
expiredAttempt()
Section titled “expiredAttempt()”expiredAttempt(
attemptId,now):Promise<CaptureJobRow|null>
Defined in: packages/core/src/models/capture-job.ts:130
The attempt row attemptId if it is running with a lease that passed by now, else null.
Parameters
Section titled “Parameters”attemptId
Section titled “attemptId”string
string
Returns
Section titled “Returns”Promise<CaptureJobRow | null>
finishAttempt()
Section titled “finishAttempt()”finishAttempt(
attemptId,status,now,error?):Promise<void>
Defined in: packages/core/src/models/capture-job.ts:153
End an attempt row: done, failed (with its error) or expired (taken over).
Parameters
Section titled “Parameters”attemptId
Section titled “attemptId”string
status
Section titled “status”"failed" | "done" | "expired"
string
error?
Section titled “error?”string | null = null
Returns
Section titled “Returns”Promise<void>
finishJob()
Section titled “finishJob()”finishJob(
jobId,status,now,error?):Promise<void>
Defined in: packages/core/src/models/capture-job.ts:169
End a job row for good.
Parameters
Section titled “Parameters”string
status
Section titled “status”"failed" | "cancelled" | "done"
string
error?
Section titled “error?”string | null = null
Returns
Section titled “Returns”Promise<void>
flagCancel()
Section titled “flagCancel()”flagCancel(
id,now):Promise<void>
Defined in: packages/core/src/models/capture-job.ts:195
Flag a row as cancel-requested; the flag is never cleared.
Parameters
Section titled “Parameters”string
string
Returns
Section titled “Returns”Promise<void>
get(
id):Promise<CaptureJobRow|null>
Defined in: packages/core/src/models/capture-job.ts:61
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<CaptureJobRow | null>
latestForBuild()
Section titled “latestForBuild()”latestForBuild(
buildId,kinds):Promise<CaptureJobRow|null>
Defined in: packages/core/src/models/capture-job.ts:208
The build’s own (non-shard) job of kinds most recently queued, or null.
Parameters
Section titled “Parameters”buildId
Section titled “buildId”string
readonly CaptureJobKind[]
Returns
Section titled “Returns”Promise<CaptureJobRow | null>
listActive()
Section titled “listActive()”listActive(
kinds):Promise<CaptureJobRow[]>
Defined in: packages/core/src/models/capture-job.ts:227
Job rows of kinds that are queued or running, oldest first.
Parameters
Section titled “Parameters”readonly CaptureJobKind[]
Returns
Section titled “Returns”Promise<CaptureJobRow[]>
listForBuild()
Section titled “listForBuild()”listForBuild(
buildId):Promise<CaptureJobRow[]>
Defined in: packages/core/src/models/capture-job.ts:200
Job rows of a build (its own job and its shard jobs), oldest first.
Parameters
Section titled “Parameters”buildId
Section titled “buildId”string
Returns
Section titled “Returns”Promise<CaptureJobRow[]>
listRecent()
Section titled “listRecent()”listRecent(
kinds,limit):Promise<CaptureJobRow[]>
Defined in: packages/core/src/models/capture-job.ts:239
The newest job rows of kinds, newest first.
Parameters
Section titled “Parameters”readonly CaptureJobKind[]
number
Returns
Section titled “Returns”Promise<CaptureJobRow[]>
markRunning()
Section titled “markRunning()”markRunning(
jobId,attempt,now):Promise<void>
Defined in: packages/core/src/models/capture-job.ts:110
The claim won: the job row records the running attempt and leaves the poll’s index range.
Parameters
Section titled “Parameters”string
attempt
Section titled “attempt”number
string
Returns
Section titled “Returns”Promise<void>
nextCandidate()
Section titled “nextCandidate()”nextCandidate(
kinds,now):Promise<CaptureJobRow|null>
Defined in: packages/core/src/models/capture-job.ts:75
The poll probe: the oldest row of kinds that may be claimed at now. One indexed range query
on (kind, visible_at, status), limit 1; only candidates have a visibleAt, so an empty queue
reads no rows and a busy one reads one.
Parameters
Section titled “Parameters”readonly CaptureJobKind[]
string
Returns
Section titled “Returns”Promise<CaptureJobRow | null>
purgeFinished()
Section titled “purgeFinished()”purgeFinished(
before):Promise<number>
Defined in: packages/core/src/models/capture-job.ts:252
Retention: delete finished jobs created before before, with their attempt rows. Returns the
number of jobs removed. Running and queued jobs are never touched.
Parameters
Section titled “Parameters”before
Section titled “before”string
Returns
Section titled “Returns”Promise<number>
removeForBuild()
Section titled “removeForBuild()”removeForBuild(
buildId):Promise<number>
Defined in: packages/core/src/models/capture-job.ts:273
A build was removed: delete every capture_jobs row that points at it (job and attempt rows,
whatever their status). There is no foreign key, so retention does this by hand. Returns the
number of rows removed.
Parameters
Section titled “Parameters”buildId
Section titled “buildId”string
Returns
Section titled “Returns”Promise<number>
renew()
Section titled “renew()”renew(
attemptId,leaseUntil,now):Promise<CaptureJobRow|null>
Defined in: packages/core/src/models/capture-job.ts:121
Push an attempt’s lease out. Returns the row (null if gone) so the caller sees cancel or expiry.
Parameters
Section titled “Parameters”attemptId
Section titled “attemptId”string
leaseUntil
Section titled “leaseUntil”string
string
Returns
Section titled “Returns”Promise<CaptureJobRow | null>
requeue()
Section titled “requeue()”requeue(
jobId,visibleAt,error,now):Promise<void>
Defined in: packages/core/src/models/capture-job.ts:180
Put a job back on the queue, claimable from visibleAt, remembering why the attempt failed.
Parameters
Section titled “Parameters”string
visibleAt
Section titled “visibleAt”string
string | null
string
Returns
Section titled “Returns”Promise<void>