pub struct PostgresRuntimeConfigProvider { /* private fields */ }Expand description
Database-backed runtime-config provider. Holds an atomically swappable snapshot resolved from the registry plus stored overrides for one running service.
Implementations§
Source§impl PostgresRuntimeConfigProvider
impl PostgresRuntimeConfigProvider
Sourcepub async fn connect(
pool: DbPool,
registry: Arc<RuntimeConfigRegistry>,
service_key: impl Into<String>,
) -> AppResult<Arc<Self>>
pub async fn connect( pool: DbPool, registry: Arc<RuntimeConfigRegistry>, service_key: impl Into<String>, ) -> AppResult<Arc<Self>>
Construct the provider and load the initial snapshot from the store.
Sourcepub async fn refresh(&self) -> AppResult<()>
pub async fn refresh(&self) -> AppResult<()>
Reload all stored values and swap in a fresh snapshot.
Restart-only keys are reverted to their frozen startup values so they do not take effect until the process restarts.
Sourcepub fn spawn_listener(self: &Arc<Self>)
pub fn spawn_listener(self: &Arc<Self>)
Spawn the background LISTEN task. Refreshes on every notification and fully reloads on (re)connect, so missed notifications self-heal.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for PostgresRuntimeConfigProvider
impl !UnwindSafe for PostgresRuntimeConfigProvider
impl Freeze for PostgresRuntimeConfigProvider
impl Send for PostgresRuntimeConfigProvider
impl Sync for PostgresRuntimeConfigProvider
impl Unpin for PostgresRuntimeConfigProvider
impl UnsafeUnpin for PostgresRuntimeConfigProvider
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request