pub trait Task: Send + Sync {
// Provided methods
fn before(&self) -> BoxFuture<'_, Result<bool, Error>> { ... }
fn after(&self) -> BoxFuture<'_, Result<bool, Error>> { ... }
fn priority(&self) -> u8 { ... }
}Expand description
生命周期钩子 trait,用于在应用启动/关闭时执行自定义逻辑。
由于实例以 Arc<dyn Task> 存入全局注册表并跨线程使用,要求实现类型必须
满足 Send + Sync——把约束直接写在 trait 上,存储类型就是简洁的
Arc<dyn Task>,不必到处复述 + Send + Sync。
before:应用启动前执行(如初始化资源),按优先级从低到高顺序调用,fail-fast。after:应用关闭后执行(如释放资源),按优先级从高到低顺序调用,best-effort (任一任务出错只记日志、继续执行后续清理,确保资源被尽可能释放)。- 返回
true表示该钩子实际执行了操作,会记录耗时日志;返回false则静默跳过。
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".