pub struct Job {
pub queue: String,
pub created_at: Option<DateTime<Utc>>,
pub enqueued_at: Option<DateTime<Utc>>,
pub at: Option<DateTime<Utc>>,
pub reserve_for: Option<usize>,
pub retry: Option<isize>,
pub priority: Option<u8>,
pub backtrace: Option<usize>,
pub custom: HashMap<String, Value>,
/* private fields */
}
Expand description
A Faktory job.
To create a job, use ‘Job::new’ specifying ‘kind’ and ‘args’:
use faktory::Job;
let _job = Job::new("order", vec!["ISBN-13:9781718501850"]);
Alternatively, use JobBuilder
to configure more aspects of a job:
use faktory::JobBuilder;
let _job = JobBuilder::new("order")
.args(vec!["ISBN-13:9781718501850"])
.build();
Equivalently:
use faktory::Job;
let _job = Job::builder("order")
.args(vec!["ISBN-13:9781718501850"])
.build();
In case no arguments are expected ‘on the other side’, you can simply go with:
use faktory::Job;
let _job = Job::builder("rebuild_index").build();
See also the Faktory wiki.
Fields§
§queue: String
The queue this job belongs to. Usually default
.
created_at: Option<DateTime<Utc>>
When this job was created.
enqueued_at: Option<DateTime<Utc>>
When this job was supplied to the Faktory server.
at: Option<DateTime<Utc>>
When this job is scheduled for.
Defaults to immediately.
reserve_for: Option<usize>
How long to allow this job to run for.
Defaults to 600 seconds.
retry: Option<isize>
Number of times to retry this job.
Defaults to 25.
priority: Option<u8>
The priority of this job from 1-9 (9 is highest).
Pushing a job with priority 9 will effectively put it at the front of the queue. Defaults to 5.
backtrace: Option<usize>
Number of lines of backtrace to keep if this job fails.
Defaults to 0.
custom: HashMap<String, Value>
Extra context to include with the job.
Faktory workers can have plugins and middleware which need to store additional context with the job payload. Faktory supports a custom hash to store arbitrary key/values in the JSON. This can be extremely helpful for cross-cutting concerns which should propagate between systems, e.g. locale for user-specific text translations, request_id for tracing execution across a complex distributed system, etc.
Implementations§
source§impl Job
impl Job
sourcepub fn new<S, A>(kind: S, args: Vec<A>) -> Self
pub fn new<S, A>(kind: S, args: Vec<A>) -> Self
Create a new job of type kind
, with the given arguments.
sourcepub fn builder<S: Into<String>>(kind: S) -> JobBuilder
pub fn builder<S: Into<String>>(kind: S) -> JobBuilder
Creates an ergonomic constructor for a new Job
.
Also equivalent to JobBuilder::new
.