Skip to main content

BatcherHandle

Struct BatcherHandle 

Source
pub struct BatcherHandle<T> { /* private fields */ }
Expand description

A handle to the background batcher worker.

This handle is cheap to clone and can be shared across threads. It provides methods to insert rows and control the batcher lifecycle.

Implementations§

Source§

impl<T: ClickInsertable + Send + 'static> BatcherHandle<T>

Source

pub async fn insert(&self, row: T) -> Result<()>

Insert a single row into the batch.

This method waits if the internal channel is full (Backpressure). Use this for data integrity when you want to slow down the producer rather than dropping data.

§Errors

Returns an error if the batcher worker has terminated.

Source

pub fn try_insert(&self, row: T) -> Result<()>

Try to insert a single row without blocking.

This method fails immediately if the channel is full (Load Shedding). Use this for high-availability scenarios where dropping data is preferable to blocking the application.

§Errors

Returns Channel full if the channel is at capacity. Returns Channel closed if the worker has terminated.

Source

pub async fn insert_many(&self, rows: Vec<T>) -> Result<()>

Insert multiple rows into the batch.

This treats the vector as a single unit for channel capacity purposes.

Source

pub async fn flush(&self) -> Result<FlushStats>

Force a flush of the current buffer and wait for completion.

This ensures all data currently in the buffer is sent to ClickHouse.

Source

pub async fn close(self) -> Result<()>

Close the batcher and flush remaining data.

This signals the worker to finish processing pending items, flush the buffer, and then terminate.

Trait Implementations§

Source§

impl<T: Clone> Clone for BatcherHandle<T>

Source§

fn clone(&self) -> BatcherHandle<T>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<T> Freeze for BatcherHandle<T>

§

impl<T> RefUnwindSafe for BatcherHandle<T>

§

impl<T> Send for BatcherHandle<T>
where T: Send,

§

impl<T> Sync for BatcherHandle<T>
where T: Send,

§

impl<T> Unpin for BatcherHandle<T>

§

impl<T> UnsafeUnpin for BatcherHandle<T>

§

impl<T> UnwindSafe for BatcherHandle<T>

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
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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