pub struct ScheduleLock {
pub task_name: String,
pub owner: String,
pub acquired_at: DateTime<Utc>,
pub expires_at: DateTime<Utc>,
pub renewal_count: u32,
}Expand description
Schedule lock for preventing duplicate execution in distributed scenarios
Fields§
§task_name: StringTask name this lock is for
owner: StringLock owner identifier (e.g., scheduler instance ID)
acquired_at: DateTime<Utc>When the lock was acquired
expires_at: DateTime<Utc>When the lock expires (for automatic cleanup)
renewal_count: u32Lock renewal count (for debugging)
Implementations§
Source§impl ScheduleLock
impl ScheduleLock
Sourcepub fn new(task_name: String, owner: String, ttl_seconds: u64) -> Self
pub fn new(task_name: String, owner: String, ttl_seconds: u64) -> Self
Create a new schedule lock
§Arguments
task_name- Name of the task to lockowner- Identifier of the lock owner (e.g., scheduler instance ID)ttl_seconds- Time-to-live for the lock in seconds
Sourcepub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Check if the lock has expired
Sourcepub fn is_owned_by(&self, owner: &str) -> bool
pub fn is_owned_by(&self, owner: &str) -> bool
Check if the lock is owned by the given owner
Trait Implementations§
Source§impl Clone for ScheduleLock
impl Clone for ScheduleLock
Source§impl Debug for ScheduleLock
impl Debug for ScheduleLock
Source§impl<'de> Deserialize<'de> for ScheduleLock
impl<'de> Deserialize<'de> for ScheduleLock
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ScheduleLock
impl RefUnwindSafe for ScheduleLock
impl Send for ScheduleLock
impl Sync for ScheduleLock
impl Unpin for ScheduleLock
impl UnsafeUnpin for ScheduleLock
impl UnwindSafe for ScheduleLock
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more