pub struct PartitionedSessionWindow { /* private fields */ }Expand description
A partitioned session window that maintains separate sessions per partition key
Implementations§
Source§impl PartitionedSessionWindow
impl PartitionedSessionWindow
pub fn new(partition_key: String, gap: Duration) -> Self
Add a shared event to the appropriate partition session.
Sourcepub fn check_expired(
&mut self,
now: DateTime<Utc>,
) -> Vec<(String, Vec<SharedEvent>)>
pub fn check_expired( &mut self, now: DateTime<Utc>, ) -> Vec<(String, Vec<SharedEvent>)>
Check all partitions for expired sessions. Returns a list of (partition_key, events) for each expired session, and removes those partitions from the map.
Flush all partition sessions as SharedEvent references.
Sourcepub fn flush(&mut self) -> Vec<Event>
pub fn flush(&mut self) -> Vec<Event>
Flush all partition sessions (clones for backward compatibility).
Sourcepub fn checkpoint(&self) -> WindowCheckpoint
pub fn checkpoint(&self) -> WindowCheckpoint
Create a checkpoint of all partition sessions.
Sourcepub fn restore(&mut self, cp: &WindowCheckpoint)
pub fn restore(&mut self, cp: &WindowCheckpoint)
Restore partition sessions from a checkpoint.
Sourcepub fn advance_watermark(
&mut self,
wm: DateTime<Utc>,
) -> Vec<(String, Vec<SharedEvent>)>
pub fn advance_watermark( &mut self, wm: DateTime<Utc>, ) -> Vec<(String, Vec<SharedEvent>)>
Advance watermark — close expired sessions across all partitions.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PartitionedSessionWindow
impl RefUnwindSafe for PartitionedSessionWindow
impl Send for PartitionedSessionWindow
impl Sync for PartitionedSessionWindow
impl Unpin for PartitionedSessionWindow
impl UnsafeUnpin for PartitionedSessionWindow
impl UnwindSafe for PartitionedSessionWindow
Blanket Implementations§
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more