pub struct RedisListPublisher { /* private fields */ }Expand description
Publishes onto a list with LPUSH, so right-popping consumers see FIFO order.
Obtain it from RedisBroker::list_publisher. Headers are
framed around the payload; set a codec for a readable wire format (it must match
the subscriber’s).
Implementations§
Source§impl RedisListPublisher
impl RedisListPublisher
Sourcepub fn codec(self, codec: impl Codec + 'static) -> Self
pub fn codec(self, codec: impl Codec + 'static) -> Self
Serializes the header/payload envelope with codec (must match the subscriber). Without it
the default lossless binary framing is used.
Sourcepub const fn ttl(self, ttl: Duration) -> Self
pub const fn ttl(self, ttl: Duration) -> Self
Sets a time-to-live on the list key, refreshed (PEXPIRE) on every publish, so an idle
queue auto-expires. Off by default: without it the list lives until drained or deleted.
This is a per-key TTL on the whole list, not per-entry: Redis lists have no per-element
expiry, only the key can expire. Each publish pushes the entry and re-arms the key’s TTL in
one pipeline, so an actively used queue never expires and only an idle one does. A sub-
millisecond ttl is clamped up to 1ms, since PEXPIRE 0 would delete the key outright.
§Examples
use std::time::Duration;
use ruststream_fred::RedisBroker;
let broker = RedisBroker::connect("redis://localhost:6379").await?;
let publisher = broker.list_publisher().ttl(Duration::from_secs(300));Trait Implementations§
Source§impl Clone for RedisListPublisher
impl Clone for RedisListPublisher
Source§fn clone(&self) -> RedisListPublisher
fn clone(&self) -> RedisListPublisher
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RedisListPublisher
impl Debug for RedisListPublisher
Auto Trait Implementations§
impl !RefUnwindSafe for RedisListPublisher
impl !UnwindSafe for RedisListPublisher
impl Freeze for RedisListPublisher
impl Send for RedisListPublisher
impl Sync for RedisListPublisher
impl Unpin for RedisListPublisher
impl UnsafeUnpin for RedisListPublisher
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<P> ErasedPublisher for Pwhere
P: Publisher,
impl<P> ErasedPublisher for Pwhere
P: Publisher,
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>
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>
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