Active Job Continuation
Step
¶ ↑
Represents a step within a continuable job.
When a step is completed, it is recorded in the job’s continuation state. If the job is interrupted, it will be resumed from after the last completed step.
Steps also have an optional cursor that can be used to track progress within the step. If a job is interrupted during a step, the cursor will be saved and passed back when the job is resumed.
It is the responsibility of the code in the step to use the cursor correctly to resume from where it left off.
- A
- C
- D
- N
- R
- S
- T
Attributes
[R] | cursor | The cursor for the step. |
[R] | name | The name of the step. |
Class Public methods
new(name, cursor, job:, resumed:) Link
Instance Public methods
advance!(from: nil) Link
Advance the cursor from the current or supplied value
The cursor will be advanced by calling the succ
method on the cursor. An UnadvanceableCursorError
error will be raised if the cursor does not implement succ
.
advanced?() Link
Has the cursor been advanced during this job execution?
checkpoint!() Link
Check if the job should be interrupted, and if so raise an Interrupt
exception. The job will be requeued for retry.
description() Link
resumed?() Link
Has this step been resumed from a previous job execution?
set!(cursor) Link
Set the cursor and interrupt the job if necessary.