quasar_jobs/job
Durable job values and their state machine.
Types
Capability for one claim. The owner nonce changes even across manual retries. Generation is the attempt number; both fields must match atomically.
pub opaque type ExecutionToken
pub type JobError {
JobError(kind: String, message: String)
}
Constructors
-
JobError(kind: String, message: String)
pub type Status {
Available
Scheduled
Executing
Completed
Retryable
Discarded
Cancelled
}
Constructors
-
Available -
Scheduled -
Executing -
Completed -
Retryable -
Discarded -
Cancelled
Values
pub fn attempted_at(job: Job) -> option.Option(Int)
pub fn available_at(job: Job) -> Int
pub fn cancel(job: Job) -> Result(Job, TransitionError)
pub fn claim(
job: Job,
owner: String,
now: Int,
lease_expires_at: Int,
) -> Result(Job, TransitionError)
pub fn complete(
job: Job,
now: Int,
) -> Result(Job, TransitionError)
pub fn completed_at(job: Job) -> option.Option(Int)
pub fn encoded_payload(new_job: NewJob) -> String
pub fn error(job: Job) -> option.Option(JobError)
pub fn error_kind(error: JobError) -> String
pub fn error_message(error: JobError) -> String
pub fn execution_token(
item: Job,
) -> Result(ExecutionToken, TransitionError)
pub fn fail(
job: Job,
error: JobError,
available_at: Int,
) -> Result(Job, TransitionError)
pub fn id_to_string(id: JobId) -> String
pub fn inserted_at(job: Job) -> Int
pub fn lease_expires_at(job: Job) -> option.Option(Int)
pub fn lease_owner(job: Job) -> option.Option(String)
pub fn materialise(
new_job: NewJob,
id: JobId,
queue: String,
available_at: Int,
now: Int,
) -> Result(Job, TransitionError)
pub fn max_attempts(job: Job) -> Int
pub fn new_job(
worker: String,
payload: String,
priority: Int,
max_attempts: Int,
) -> NewJob
pub fn new_job_max_attempts(new_job: NewJob) -> Int
pub fn new_job_priority(new_job: NewJob) -> Int
pub fn owns(item: Job, token: ExecutionToken) -> Bool
pub fn restore(
id: JobId,
queue: String,
worker: String,
payload: String,
status: Status,
priority: Int,
attempt: Int,
max_attempts: Int,
available_at: Int,
inserted_at: Int,
attempted_at: option.Option(Int),
completed_at: option.Option(Int),
lease_owner: option.Option(String),
lease_expires_at: option.Option(Int),
error_kind: option.Option(String),
error_message: option.Option(String),
) -> Job
pub fn retry(job: Job, now: Int) -> Result(Job, TransitionError)
pub fn status_from_string(
status: String,
) -> Result(Status, String)
pub fn status_to_string(status: Status) -> String
pub fn token_generation(token: ExecutionToken) -> Int
pub fn token_id(token: ExecutionToken) -> JobId
pub fn token_owner(token: ExecutionToken) -> String
pub fn validate(new_job: NewJob) -> Result(Nil, TransitionError)
pub fn with_max_attempts(
new_job: NewJob,
max_attempts: Int,
) -> NewJob
Changes the maximum number of execution attempts.
pub fn with_priority(new_job: NewJob, priority: Int) -> NewJob
Changes the priority used when a store claims ready jobs.
pub fn worker_name(new_job: NewJob) -> String