#[non_exhaustive]pub enum Event {
Input {
id: DataId,
metadata: Metadata,
data: ArrowData,
},
InputClosed {
id: DataId,
},
Stop(StopCause),
Reload {
operator_id: Option<OperatorId>,
},
Error(String),
}Expand description
Represents an incoming Dora event.
Events might be triggered by other nodes, by Dora itself, or by some external user input.
It’s safe to ignore event types that are not relevant to the node.
This enum is marked as non_exhaustive because we might add additional
variants in the future. Please ignore unknown event types instead of throwing an
error to avoid breakage when updating Dora.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Input
An input was received from another node.
This event corresponds to one of the inputs of the node as specified
in the dataflow YAML file.
Fields
InputClosed
An input was closed by the sender.
The sending node mapped to an input exited, so this input will receive no more data.
Fields
Stop(StopCause)
Notification that the event stream is about to close.
The StopCause field contains the reason for the event stream closure.
Typically, nodes should exit once the event stream closes. One notable
exception are nodes with no inputs, which will receive aa
Event::Stop(StopCause::AllInputsClosed) right at startup. Source nodes
might want to keep producing outputs still. (There is currently an open
discussion of changing this behavior and not sending AllInputsClosed
to nodes without inputs.)
Note: Stop events with StopCause::Manual indicate a manual stop operation
issued through dora stop or a ctrl-c. Nodes must exit once receiving
such a stop event, otherwise they will be killed by Dora.
Reload
Instructs the node to reload itself or one of its operators.
This event is currently only used for reloading Python operators that are
started by a dora runtime process. So this event should not be sent to normal
nodes yet.
Fields
operator_id: Option<OperatorId>The ID of the operator that should be reloaded.
There is currently no case where operator_id is None.
Error(String)
Notifies the node about an unexpected error that happened inside Dora.
It’s a good idea to output or log this error for debugging.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Event
impl !RefUnwindSafe for Event
impl Send for Event
impl Sync for Event
impl Unpin for Event
impl !UnwindSafe for Event
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> 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> 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>
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 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>
T in a tonic::Request