Struct apalis_core::request::JobRequest
source · pub struct JobRequest<T> { /* private fields */ }Expand description
Represents a job which can be serialized and executed
Implementations§
source§impl<T> JobRequest<T>
impl<T> JobRequest<T>
sourcepub fn new(job: T) -> Self
pub fn new(job: T) -> Self
Creates a new JobRequest
sourcepub fn new_with_context(job: T, ctx: JobContext) -> Self
pub fn new_with_context(job: T, ctx: JobContext) -> Self
Creates a Job request with context provided
sourcepub fn record_attempt(&mut self)
pub fn record_attempt(&mut self)
Records a job attempt
Methods from Deref<Target = JobContext>§
sourcepub fn data_opt<D: Any + Send + Sync>(&self) -> Option<&D>
pub fn data_opt<D: Any + Send + Sync>(&self) -> Option<&D>
Get an optional reference to a type previously inserted on this JobContext.
Example
let mut ctx = JobContext::new(JobId::new());
assert!(ctx.data_opt::<i32>().is_none());
ctx.insert(5i32);
assert_eq!(ctx.data_opt::<i32>(), Some(&5i32));sourcepub fn data<D: Any + Send + Sync>(&self) -> Result<&D, JobError>
pub fn data<D: Any + Send + Sync>(&self) -> Result<&D, JobError>
Get a reference to a type previously inserted on this JobContext.
Errors
If the type requested is not in the JobContext
Example
let mut ctx = JobContext::new(JobId::new());
assert!(ctx.data::<i32>().is_err());
assert_eq!(
ctx.data::<i32>().unwrap_err().to_string(),
"MissingContext: Attempted to fetch context of i32. Did you add `.layer(Extension(i32))"
);
ctx.insert(5i32);
assert_eq!(ctx.data::<i32>().unwrap(), &5i32);sourcepub fn insert<D: Any + Send + Sync + Clone>(&mut self, data: D) -> Option<D>
pub fn insert<D: Any + Send + Sync + Clone>(&mut self, data: D) -> Option<D>
Insert a type into this JobContext.
Important for embedding data for a job. If a extension of this type already existed, it will be returned.
Example
let mut ctx = JobContext::new(JobId::new());
assert!(ctx.insert(5i32).is_none());
assert!(ctx.insert(4u8).is_none());
assert_eq!(ctx.insert(9i32), Some(5i32));sourcepub fn set_max_attempts(&mut self, max_attempts: i32)
pub fn set_max_attempts(&mut self, max_attempts: i32)
Set the number of attempts
sourcepub fn max_attempts(&self) -> i32
pub fn max_attempts(&self) -> i32
Gets the maximum attempts for a job. Default 25
sourcepub fn set_attempts(&mut self, attempts: i32)
pub fn set_attempts(&mut self, attempts: i32)
Set the number of attempts
sourcepub fn set_done_at(&mut self, done_at: Option<DateTime<Utc>>)
pub fn set_done_at(&mut self, done_at: Option<DateTime<Utc>>)
Set the time a job was done
sourcepub fn set_run_at(&mut self, run_at: DateTime<Utc>)
pub fn set_run_at(&mut self, run_at: DateTime<Utc>)
Set the time a job should run
sourcepub fn set_lock_at(&mut self, lock_at: Option<DateTime<Utc>>)
pub fn set_lock_at(&mut self, lock_at: Option<DateTime<Utc>>)
Set the lock_at value
sourcepub fn set_status(&mut self, status: JobState)
pub fn set_status(&mut self, status: JobState)
Set the job status
sourcepub fn set_lock_by(&mut self, lock_by: Option<WorkerId>)
pub fn set_lock_by(&mut self, lock_by: Option<WorkerId>)
Set lock_by
sourcepub fn last_error(&self) -> &Option<String>
pub fn last_error(&self) -> &Option<String>
Get the time a job was locked
sourcepub fn set_last_error(&mut self, error: String)
pub fn set_last_error(&mut self, error: String)
Set the last error
Trait Implementations§
source§impl<T: Clone> Clone for JobRequest<T>
impl<T: Clone> Clone for JobRequest<T>
source§fn clone(&self) -> JobRequest<T>
fn clone(&self) -> JobRequest<T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl<T: Debug> Debug for JobRequest<T>
impl<T: Debug> Debug for JobRequest<T>
source§impl<T> Deref for JobRequest<T>
impl<T> Deref for JobRequest<T>
source§impl<T> DerefMut for JobRequest<T>
impl<T> DerefMut for JobRequest<T>
source§impl<'de, T> Deserialize<'de> for JobRequest<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for JobRequest<T>where T: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl<J> HasJobContext for JobRequest<J>
impl<J> HasJobContext for JobRequest<J>
source§fn context_mut(&mut self) -> &mut JobContext
fn context_mut(&mut self) -> &mut JobContext
Gets a mutable reference to the job context.
source§fn context(&self) -> &JobContext
fn context(&self) -> &JobContext
Gets a reference to the job context.
source§impl<T, Res> Policy<JobRequest<T>, Res, JobError> for DefaultRetryPolicywhere
T: Clone,
Available on crate feature retry only.
impl<T, Res> Policy<JobRequest<T>, Res, JobError> for DefaultRetryPolicywhere T: Clone,
retry only.§type Future = Ready<DefaultRetryPolicy>
type Future = Ready<DefaultRetryPolicy>
Future type returned by Policy::retry.source§fn retry(
&self,
req: &JobRequest<T>,
result: Result<&Res, &JobError>
) -> Option<Self::Future>
fn retry( &self, req: &JobRequest<T>, result: Result<&Res, &JobError> ) -> Option<Self::Future>
source§fn clone_request(&self, req: &JobRequest<T>) -> Option<JobRequest<T>>
fn clone_request(&self, req: &JobRequest<T>) -> Option<JobRequest<T>>
source§impl<T> Serialize for JobRequest<T>where
T: Serialize,
impl<T> Serialize for JobRequest<T>where T: Serialize,
source§impl<SV, A, J> Service<JobRequest<J>> for AckService<SV, A, J>where
SV: Service<JobRequest<J>> + Send + Sync + 'static,
SV::Error: Error + Send + Sync + 'static,
<SV as Service<JobRequest<J>>>::Future: Send + 'static,
A: Ack<J> + Send + 'static + Clone + Sync,
J: 'static,
<SV as Service<JobRequest<J>>>::Response: Send,
<A as Ack<J>>::Acknowledger: Sync + Send + Clone,
Available on crate feature extensions only.
impl<SV, A, J> Service<JobRequest<J>> for AckService<SV, A, J>where SV: Service<JobRequest<J>> + Send + Sync + 'static, SV::Error: Error + Send + Sync + 'static, <SV as Service<JobRequest<J>>>::Future: Send + 'static, A: Ack<J> + Send + 'static + Clone + Sync, J: 'static, <SV as Service<JobRequest<J>>>::Response: Send, <A as Ack<J>>::Acknowledger: Sync + Send + Clone,
extensions only.§type Response = <SV as Service<JobRequest<J>>>::Response
type Response = <SV as Service<JobRequest<J>>>::Response
§type Error = <SV as Service<JobRequest<J>>>::Error
type Error = <SV as Service<JobRequest<J>>>::Error
§type Future = Pin<Box<dyn Future<Output = Result<<AckService<SV, A, J> as Service<JobRequest<J>>>::Response, <AckService<SV, A, J> as Service<JobRequest<J>>>::Error>> + Send>>
type Future = Pin<Box<dyn Future<Output = Result<<AckService<SV, A, J> as Service<JobRequest<J>>>::Response, <AckService<SV, A, J> as Service<JobRequest<J>>>::Error>> + Send>>
source§fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
Poll::Ready(Ok(())) when the service is able to process requests. Read moresource§fn call(&mut self, request: JobRequest<J>) -> Self::Future
fn call(&mut self, request: JobRequest<J>) -> Self::Future
source§impl<S, J, F, Res> Service<JobRequest<J>> for PrometheusService<S>where
S: Service<JobRequest<J>, Response = Res, Error = JobError, Future = F>,
F: Future<Output = Result<Res, JobError>> + 'static,
J: Job,
Available on crate feature prometheus only.
impl<S, J, F, Res> Service<JobRequest<J>> for PrometheusService<S>where S: Service<JobRequest<J>, Response = Res, Error = JobError, Future = F>, F: Future<Output = Result<Res, JobError>> + 'static, J: Job,
prometheus only.§type Response = <S as Service<JobRequest<J>>>::Response
type Response = <S as Service<JobRequest<J>>>::Response
§type Error = <S as Service<JobRequest<J>>>::Error
type Error = <S as Service<JobRequest<J>>>::Error
§type Future = ResponseFuture<F>
type Future = ResponseFuture<F>
source§fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
Poll::Ready(Ok(())) when the service is able to process requests. Read moresource§fn call(&mut self, request: JobRequest<J>) -> Self::Future
fn call(&mut self, request: JobRequest<J>) -> Self::Future
source§impl<S, J, F, Res> Service<JobRequest<J>> for SentryJobService<S>where
S: Service<JobRequest<J>, Response = Res, Error = JobError, Future = F>,
F: Future<Output = Result<Res, JobError>> + 'static,
J: Job,
Available on crate feature sentry only.
impl<S, J, F, Res> Service<JobRequest<J>> for SentryJobService<S>where S: Service<JobRequest<J>, Response = Res, Error = JobError, Future = F>, F: Future<Output = Result<Res, JobError>> + 'static, J: Job,
sentry only.§type Response = <S as Service<JobRequest<J>>>::Response
type Response = <S as Service<JobRequest<J>>>::Response
§type Error = <S as Service<JobRequest<J>>>::Error
type Error = <S as Service<JobRequest<J>>>::Error
§type Future = SentryHttpFuture<<S as Service<JobRequest<J>>>::Future>
type Future = SentryHttpFuture<<S as Service<JobRequest<J>>>::Future>
source§fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
Poll::Ready(Ok(())) when the service is able to process requests. Read moresource§fn call(&mut self, request: JobRequest<J>) -> Self::Future
fn call(&mut self, request: JobRequest<J>) -> Self::Future
source§impl<J, S, OnRequestT, OnResponseT, OnFailureT, MakeSpanT, F, Res> Service<JobRequest<J>> for Trace<S, MakeSpanT, OnRequestT, OnResponseT, OnFailureT>where
S: Service<JobRequest<J>, Response = Res, Error = JobError, Future = F> + Unpin + Send + 'static,
S::Error: Display + 'static,
MakeSpanT: MakeSpan<J>,
OnRequestT: OnRequest<J>,
OnResponseT: OnResponse<Res> + Clone + 'static,
F: Future<Output = Result<Res, JobError>> + 'static,
OnFailureT: OnFailure + Clone + 'static,
Available on crate feature trace only.
impl<J, S, OnRequestT, OnResponseT, OnFailureT, MakeSpanT, F, Res> Service<JobRequest<J>> for Trace<S, MakeSpanT, OnRequestT, OnResponseT, OnFailureT>where S: Service<JobRequest<J>, Response = Res, Error = JobError, Future = F> + Unpin + Send + 'static, S::Error: Display + 'static, MakeSpanT: MakeSpan<J>, OnRequestT: OnRequest<J>, OnResponseT: OnResponse<Res> + Clone + 'static, F: Future<Output = Result<Res, JobError>> + 'static, OnFailureT: OnFailure + Clone + 'static,
trace only.§type Future = ResponseFuture<F, OnResponseT, OnFailureT>
type Future = ResponseFuture<F, OnResponseT, OnFailureT>
source§fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
Poll::Ready(Ok(())) when the service is able to process requests. Read moresource§fn call(&mut self, req: JobRequest<J>) -> Self::Future
fn call(&mut self, req: JobRequest<J>) -> Self::Future
source§impl<T, F, Request, E, R> Service<JobRequest<Request>> for JobFn<T>where
T: Fn(Request, JobContext) -> F,
F: Future,
F::Output: IntoResponse<Result = Result<R, E>>,
impl<T, F, Request, E, R> Service<JobRequest<Request>> for JobFn<T>where T: Fn(Request, JobContext) -> F, F: Future, F::Output: IntoResponse<Result = Result<R, E>>,
source§fn poll_ready(&mut self, _: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
fn poll_ready(&mut self, _: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
Poll::Ready(Ok(())) when the service is able to process requests. Read more