use std::time::Instant;
use super::QueueError;
pub struct Job {
pub(crate) payload: Vec<u8>,
pub name: String,
pub attempt: u32,
pub id: u64,
}
impl Job {
pub fn deserialize<T: serde::de::DeserializeOwned>(&self) -> Result<T, QueueError> {
serde_json::from_slice(&self.payload).map_err(|e| QueueError::HandlerError(e.to_string()))
}
pub fn raw_payload(&self) -> &[u8] {
&self.payload
}
}
#[derive(Debug, Clone)]
pub struct DeadJob {
pub id: u64,
pub name: String,
pub payload: Vec<u8>,
pub attempts: u32,
pub error: String,
pub failed_at: Instant,
}