Trait bee_runtime::worker::Worker
source · [−]pub trait Worker<N: Node>: Any + Send + Sync + Sized {
type Config;
type Error: Error;
fn start<'life0, 'async_trait>(
node: &'life0 mut N,
config: Self::Config
) -> Pin<Box<dyn Future<Output = Result<Self, Self::Error>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn dependencies() -> &'static [TypeId] { ... }
fn stop<'life0, 'async_trait>(
self,
_node: &'life0 mut N
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait,
{ ... }
}
Expand description
A trait representing a node worker.
Node workers are conceptually similar to actors in the actor programming model, but differ slightly in a number of crucial ways.
- Workers may register and access shared state, known as ‘resources’.
- Workers have a topological ordering that determine when they should be started and stopped.
Required Associated Types
Required Methods
Provided Methods
fn dependencies() -> &'static [TypeId]
fn dependencies() -> &'static [TypeId]
Generate a list of TypeId
s representing the topological worker dependencies of this worker.
Workers listed will be started before this worker and shut down after this worker.