Skip to main content

ChannelLogger

Struct ChannelLogger 

Source
pub(crate) struct ChannelLogger {
    pub(crate) handle: JoinHandle<()>,
    pub(crate) stop_tx: Option<Sender<()>>,
    pub(crate) calibration_tx: Sender<CalibrationSpec>,
    pub(crate) calibration: CalibrationSpec,
    pub(crate) subject: String,
    pub(crate) stream_name: String,
    pub(crate) consumer_name: String,
    pub(crate) asset: u32,
    pub(crate) rotate_secs: u64,
}
Expand description

Runtime state for one active channel consumer and writer task.

The archiver keeps this state so KV updates can stop removed channels, rotate calibration metadata, or respawn consumers when subject identity changes. The identity fields are the values the task was started with.

Fields§

§handle: JoinHandle<()>

Handle of the writer task; main restarts the channel when it has finished.

§stop_tx: Option<Sender<()>>

Sends the graceful stop request; taken by Self::stop.

§calibration_tx: Sender<CalibrationSpec>

Sends calibration updates to the writer task.

§calibration: CalibrationSpec

Calibration last sent to the writer task.

§subject: String

JetStream subject the consumer filters on.

§stream_name: String

JetStream stream the consumer belongs to.

§consumer_name: String

Durable consumer name.

§asset: u32

Asset number used in output paths.

§rotate_secs: u64

Rotation window length in seconds.

Implementations§

Source§

impl ChannelLogger

Source

pub(crate) async fn stop(self)

Requests an orderly writer shutdown and waits for the task to finish.

On a graceful stop the task closes its open file (writing the Parquet footer) and acks the messages in it before it ends. If the task has already ended, the stop request is ignored and only the join happens. A join error (for example a panic in the task) is logged.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more