pub enum CreditRegistrationPhase {
Show 13 variants
Materialize,
Preconditions,
ResolveEnrolments,
Import,
Verify,
LegacyMirror,
StudentNotifications,
EnrolmentDiscovery,
LinkEmails,
ProductTokenRefresh,
ConfigValidation,
RetentionSweep,
LedgerSnapshot,
}Expand description
A pipeline phase. CreditRegistrationPhase::as_str is canonical: it is
credit_registration_phase_state.phase, the tick endpoint’s ?phase= and the audit log’s
target_phase.
Variants§
Materialize
Preconditions
ResolveEnrolments
Import
Verify
LegacyMirror
StudentNotifications
EnrolmentDiscovery
LinkEmails
ProductTokenRefresh
ConfigValidation
RetentionSweep
LedgerSnapshot
Implementations§
Source§impl CreditRegistrationPhase
impl CreditRegistrationPhase
Sourcepub const REGISTRAR_TICK_SEQUENCE: [Self; 5]
pub const REGISTRAR_TICK_SEQUENCE: [Self; 5]
The phases run-registrar-tick runs, in pipeline order. Not every credit-registrar phase:
legacy-mirror and student-notifications are driven explicitly by specs that need them.
pub fn as_str(self) -> &'static str
pub fn from_phase_name(name: &str) -> Option<Self>
Sourcepub fn process_name(self) -> &'static str
pub fn process_name(self) -> &'static str
Which worker process owns the phase’s loop.
Sourcepub fn calls_study_registry(self) -> bool
pub fn calls_study_registry(self) -> bool
Whether the phase talks to the study registry, and so shares the circuit breaker with the
other such phases of its own worker process (breaker::BREAKERS is process-local, not
shared between credit-registrar and suotar-syncer).
Sourcepub fn owned_states(self) -> &'static [CreditRegistrationState]
pub fn owned_states(self) -> &'static [CreditRegistrationState]
The ledger states this phase is the one to move a row out of.
The Workers tab’s “queue depth it is responsible for”, and the depth the failing-phase alert
asks about before calling a quiet phase wedged. Empty for the phases whose work is not a
ledger state at all: materialize’s queue is completions with no row yet, and the syncer’s
phases work on course modules. Narrower than what preconditions may claim, which is every
non-terminal row: these are the states nothing else advances.
pub fn scope_support(self) -> ScopeSupport
Trait Implementations§
Source§impl Clone for CreditRegistrationPhase
impl Clone for CreditRegistrationPhase
Source§fn clone(&self) -> CreditRegistrationPhase
fn clone(&self) -> CreditRegistrationPhase
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CreditRegistrationPhase
impl Debug for CreditRegistrationPhase
Source§impl Hash for CreditRegistrationPhase
impl Hash for CreditRegistrationPhase
Source§impl PartialEq for CreditRegistrationPhase
impl PartialEq for CreditRegistrationPhase
impl Copy for CreditRegistrationPhase
impl Eq for CreditRegistrationPhase
impl StructuralPartialEq for CreditRegistrationPhase
Auto Trait Implementations§
impl Freeze for CreditRegistrationPhase
impl RefUnwindSafe for CreditRegistrationPhase
impl Send for CreditRegistrationPhase
impl Sync for CreditRegistrationPhase
impl Unpin for CreditRegistrationPhase
impl UnsafeUnpin for CreditRegistrationPhase
impl UnwindSafe for CreditRegistrationPhase
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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].