#[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