pub struct CreditRegistrationPhaseRow {Show 22 fields
pub phase: String,
pub process_name: String,
pub expected_interval_secs: i32,
pub last_heartbeat_at: Option<DateTime<Utc>>,
pub last_run_started_at: Option<DateTime<Utc>>,
pub last_run_finished_at: Option<DateTime<Utc>>,
pub last_success_at: Option<DateTime<Utc>>,
pub next_run_at: Option<DateTime<Utc>>,
pub items_processed_last_run: Option<i32>,
pub items_failed_last_run: Option<i32>,
pub consecutive_failures: i32,
pub last_error: Option<String>,
pub paused_at: Option<DateTime<Utc>>,
pub paused_by_user_id: Option<Uuid>,
pub pause_reason: Option<String>,
pub implemented: bool,
pub seconds_since_heartbeat: Option<i64>,
pub last_run_duration_secs: Option<i64>,
pub heartbeat_late: bool,
pub failing: bool,
pub owned_states: Vec<CreditRegistrationState>,
pub queue_depth: Option<i64>,
}Expand description
One phase as the Workers tab renders it.
Wider than CreditRegistrationPhaseStatus, which the pause/resume/run-now responses return: this
one also carries the last error, the run window and the queue.
Fields§
§phase: String§process_name: StringThe worker process whose loop runs the phase. Rows are grouped by it, because a dead pod makes every phase inside it go stale at once and that reads as one fault, not seven.
expected_interval_secs: i32§last_heartbeat_at: Option<DateTime<Utc>>§last_run_started_at: Option<DateTime<Utc>>§last_run_finished_at: Option<DateTime<Utc>>§last_success_at: Option<DateTime<Utc>>§next_run_at: Option<DateTime<Utc>>§items_processed_last_run: Option<i32>§items_failed_last_run: Option<i32>§consecutive_failures: i32§last_error: Option<String>Our own wording or the study registry’s code, never its prose.
paused_at: Option<DateTime<Utc>>§paused_by_user_id: Option<Uuid>§pause_reason: Option<String>§implemented: boolNo implementation is registered for the phase yet, so it has never reported and will not.
seconds_since_heartbeat: Option<i64>Computed server-side: a page comparing its own clock against a server timestamp misjudges this on a skewed client.
last_run_duration_secs: Option<i64>§heartbeat_late: boolAlways false while paused or never heartbeated.
failing: bool§owned_states: Vec<CreditRegistrationState>The ledger states nothing but this phase moves a row out of. Empty for the phases whose work
is not a ledger state: materialize waits on completions, the syncer’s phases on modules.
queue_depth: Option<i64>Live rows in owned_states, or None where there are none to own — which is not the same
as an empty queue.
Trait Implementations§
Source§impl Clone for CreditRegistrationPhaseRow
impl Clone for CreditRegistrationPhaseRow
Source§fn clone(&self) -> CreditRegistrationPhaseRow
fn clone(&self) -> CreditRegistrationPhaseRow
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ComposeSchema for CreditRegistrationPhaseRow
impl ComposeSchema for CreditRegistrationPhaseRow
Source§impl Debug for CreditRegistrationPhaseRow
impl Debug for CreditRegistrationPhaseRow
Source§impl<'de> Deserialize<'de> for CreditRegistrationPhaseRow
impl<'de> Deserialize<'de> for CreditRegistrationPhaseRow
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl ToSchema for CreditRegistrationPhaseRow
impl ToSchema for CreditRegistrationPhaseRow
impl StructuralPartialEq for CreditRegistrationPhaseRow
Auto Trait Implementations§
impl Freeze for CreditRegistrationPhaseRow
impl RefUnwindSafe for CreditRegistrationPhaseRow
impl Send for CreditRegistrationPhaseRow
impl Sync for CreditRegistrationPhaseRow
impl Unpin for CreditRegistrationPhaseRow
impl UnsafeUnpin for CreditRegistrationPhaseRow
impl UnwindSafe for CreditRegistrationPhaseRow
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,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].