Skip to main content

TaskManager

Struct TaskManager 

Source
pub struct TaskManager { /* private fields */ }
Expand description

任务管理器

负责管理所有任务的生命周期

§功能

  • 任务注册和管理
  • 依赖排序和启动
  • 优雅停机
  • 状态追踪

§示例

ⓘ
use flare_core_runtime::task::TaskManager;
use flare_core_runtime::task::SpawnTask;

let manager = TaskManager::new();

// 添加任务
manager.add_task(Box::new(SpawnTask::new("task-1", async { Ok(()) })));

// 启动所有任务
let (join_set, shutdown_txs) = manager.start_all().await?;

// 等待停机信号
// ...

// 停止所有任务
manager.stop_all(join_set, shutdown_txs).await;

Implementations§

Source§

impl TaskManager

Source

pub fn new() -> Self

创建新的任务管理器

Source

pub fn with_config(config: RuntimeConfig) -> Self

创建新的任务管理器(带配置)

Source

pub fn add_task(&mut self, task: Box<dyn Task>)

添加任务

Source

pub fn task_count(&self) -> usize

获取任务数量

Source

pub fn state_tracker(&self) -> Arc<StateTracker> ⓘ

获取状态追踪器

Source

pub async fn start_all( &mut self, ) -> Result<(JoinSet<TaskResult>, Vec<Sender<()>>), RuntimeError>

启动所有任务

§返回
  • join_set - 任务 JoinSet,用于等待任务完成
  • shutdown_txs - shutdown 信号发送器列表
§错误
  • 循环依赖
  • 缺失依赖
Source

pub async fn stop_all( &self, join_set: JoinSet<TaskResult>, shutdown_txs: Vec<Sender<()>>, )

停止所有任务

§参数
  • join_set - 任务 JoinSet
  • shutdown_txs - shutdown 信号发送器列表
Source

pub async fn wait_for_ready(&self) -> Result<(), RuntimeError>

等待所有任务就绪

Trait Implementations§

Source§

impl Default for TaskManager

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

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

fn in_current_span(self) -> Instrumented<Self> ⓘ

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

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

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

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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