pub struct AdminDovecote { /* private fields */ }Expand description
Explicit all-tenant PostgreSQL Dovecote operations.
Implementations§
Source§impl AdminDovecote
impl AdminDovecote
Sourcepub async fn enqueue<'c>(
&self,
transaction: &mut Transaction<'c, Postgres>,
tenant_id: TenantId,
event: NewEvent,
) -> Result<EnqueueOutcome, EnqueueError>
pub async fn enqueue<'c>( &self, transaction: &mut Transaction<'c, Postgres>, tenant_id: TenantId, event: NewEvent, ) -> Result<EnqueueOutcome, EnqueueError>
Enqueues an event for an explicitly named tenant.
§Errors
Returns an identity conflict for different immutable content, a schema or backend incompatibility, invalid stored data, or a database error. The caller must roll back its transaction on failure; this method never commits it.
Sourcepub async fn import_for_migration<'c>(
&self,
transaction: &mut Transaction<'c, Postgres>,
tenant_id: TenantId,
event: NewEvent,
state: ImportedDeliveryState,
) -> Result<ImportOutcome, ImportError>
pub async fn import_for_migration<'c>( &self, transaction: &mut Transaction<'c, Postgres>, tenant_id: TenantId, event: NewEvent, state: ImportedDeliveryState, ) -> Result<ImportOutcome, ImportError>
Imports one event and legacy state for an explicitly named tenant.
§Errors
Returns a conflict if existing immutable content or delivery history differs, or an error for unsupported history, incompatible schema, invalid stored data, or database failure. Roll back the caller-owned transaction on failure.
Sourcepub async fn finalize_pending_delivery_for_migration<'c>(
&self,
transaction: &mut Transaction<'c, Postgres>,
tenant_id: TenantId,
row_id: RowId,
delivered_at: OffsetDateTime,
) -> Result<FinalizeOutcome, FinalizeError>
pub async fn finalize_pending_delivery_for_migration<'c>( &self, transaction: &mut Transaction<'c, Postgres>, tenant_id: TenantId, row_id: RowId, delivered_at: OffsetDateTime, ) -> Result<FinalizeOutcome, FinalizeError>
Finalizes one migration row for an explicitly named tenant.
§Errors
Returns an error for invalid occurrence time, conflicting or non-pending delivery history, incompatible schema, or database failure. The caller owns rollback and commit; a failed operation must not be committed.
Sourcepub async fn page(
&self,
after_row_id: Option<RowId>,
limit: Limit,
) -> Result<Vec<PagedEvent>, PageError>
pub async fn page( &self, after_row_id: Option<RowId>, limit: Limit, ) -> Result<Vec<PagedEvent>, PageError>
Reads a live page across all tenants.
§Errors
Returns an error for incompatible schema, invalid stored event or delivery state, or a database failure. No delivery state is changed.
Sourcepub async fn begin_snapshot(&self) -> Result<SnapshotPager, PageError>
pub async fn begin_snapshot(&self) -> Result<SnapshotPager, PageError>
Begins a finite snapshot pager across all tenants.
§Errors
Returns an error if the backend cannot establish the required snapshot, the schema is incompatible, or a database operation fails.
Sourcepub async fn claim(
&self,
worker: WorkerId,
lease_for: Lease,
limit: Limit,
) -> Result<Vec<ClaimedEvent>, ClaimError>
pub async fn claim( &self, worker: WorkerId, lease_for: Lease, limit: Limit, ) -> Result<Vec<ClaimedEvent>, ClaimError>
Claims pending and expired deliveries across all tenants.
§Errors
Returns an error for incompatible backend or schema, invalid stored state, attempt-counter overflow, unavailable entropy, or database failure. The owned transaction is rolled back on pre-commit failure; an unknown commit requires recovery from durable state rather than assuming no claim occurred.
Sourcepub async fn renew(
&self,
tenant_id: TenantId,
row_id: RowId,
claim_token: &ClaimToken,
lease_for: Lease,
) -> Result<(), MutationError>
pub async fn renew( &self, tenant_id: TenantId, row_id: RowId, claim_token: &ClaimToken, lease_for: Lease, ) -> Result<(), MutationError>
Renews one claim for an explicitly named tenant.
§Errors
Returns LostClaim if the token no longer owns an unexpired claim, or an
error for invalid stored state, duration overflow, or database failure.
Sourcepub async fn ack(
&self,
tenant_id: TenantId,
row_id: RowId,
claim_token: &ClaimToken,
) -> Result<(), MutationError>
pub async fn ack( &self, tenant_id: TenantId, row_id: RowId, claim_token: &ClaimToken, ) -> Result<(), MutationError>
Acknowledges one claim for an explicitly named tenant.
§Errors
Returns LostClaim if the token no longer owns an unexpired claim, or an
error for invalid stored state or database failure. A lost commit response
requires durable-state recovery; delivery remains at least once.
Sourcepub async fn retry(
&self,
tenant_id: TenantId,
row_id: RowId,
claim_token: &ClaimToken,
failure: &Failure,
backoff: Delay,
) -> Result<(), MutationError>
pub async fn retry( &self, tenant_id: TenantId, row_id: RowId, claim_token: &ClaimToken, failure: &Failure, backoff: Delay, ) -> Result<(), MutationError>
Retries one claim for an explicitly named tenant.
§Errors
Returns LostClaim if the token no longer owns an unexpired claim, or an
error for invalid stored state, delay overflow, or database failure.
Sourcepub async fn release(
&self,
tenant_id: TenantId,
row_id: RowId,
claim_token: &ClaimToken,
delay: Delay,
) -> Result<(), MutationError>
pub async fn release( &self, tenant_id: TenantId, row_id: RowId, claim_token: &ClaimToken, delay: Delay, ) -> Result<(), MutationError>
Releases one claim for an explicitly named tenant.
§Errors
Returns LostClaim if the token no longer owns an unexpired claim, or an
error for invalid stored state, delay overflow, or database failure.
Sourcepub async fn quarantine(
&self,
tenant_id: TenantId,
row_id: RowId,
claim_token: &ClaimToken,
reason: &QuarantineReason,
) -> Result<(), MutationError>
pub async fn quarantine( &self, tenant_id: TenantId, row_id: RowId, claim_token: &ClaimToken, reason: &QuarantineReason, ) -> Result<(), MutationError>
Quarantines one claim for an explicitly named tenant.
§Errors
Returns LostClaim if the token no longer owns an unexpired claim, or an
error for invalid stored state or database failure.
Trait Implementations§
Source§impl Clone for AdminDovecote
impl Clone for AdminDovecote
Source§fn clone(&self) -> AdminDovecote
fn clone(&self) -> AdminDovecote
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for AdminDovecote
impl !UnwindSafe for AdminDovecote
impl Freeze for AdminDovecote
impl Send for AdminDovecote
impl Sync for AdminDovecote
impl Unpin for AdminDovecote
impl UnsafeUnpin for AdminDovecote
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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