Struct sc_service::TaskManager[][src]

pub struct TaskManager { /* fields omitted */ }
Expand description

Helper struct to manage background/async tasks in Service.

Implementations

If a Prometheus registry is passed, it will be used to report statistics about the service tasks.

Get a handle for spawning tasks.

Get a handle for spawning essential tasks.

Send the signal for termination, prevent new tasks to be created, await for all the existing tasks to be finished and drop the object. You can consider this as an async drop.

It’s always better to call and await this function before exiting the process as background tasks may be running in the background. If the process exit and the background tasks are not cancelled, this will lead to objects not getting dropped properly.

This is an issue in some cases as some of our dependencies do require that we drop all the objects properly otherwise it triggers a SIGABRT on exit.

Return a future that will end with success if the signal to terminate was sent (self.terminate()) or with an error if an essential task fails.

Warning

This function will not wait until the end of the remaining task. You must call and await clean_shutdown() after this.

Signal to terminate all the running tasks.

Set what the task manager should keep alive, can be called multiple times.

Register another TaskManager to terminate and gracefully shutdown when the parent terminates and gracefully shutdown. Also ends the parent future() if a child’s essential task fails. (But don’t end the parent if a child’s normal task fails.)

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert from a value of T into an equivalent instance of Option<Self>. Read more

Consume self to return Some equivalent value of Option<T>. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

Get a reference to the inner from the outer.

Get a mutable reference to the inner from the outer.

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

Should always be Self

Convert from a value of T into an equivalent instance of Self. Read more

Consume self to return an equivalent value of T. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The counterpart to unchecked_from.

Consume self to return an equivalent value of T.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more