pub struct TaskPlugin { /* private fields */ }Expand description
任务插件
管理 TaskWorker 和 RetryScanner 的生命周期。
持久化通过 TaskStorage trait 委托给业务方。
实现 alun_core::Plugin,可通过 PluginManager 或 App::plugin() 统一管理。
§使用示例
ⓘ
// 配置从 config.toml 的 [task] section 读取
let task_cfg: TaskWorkerConfig = app.config().get_section("task")?;
let storage = Arc::new(DbTaskStorage::new());
let task_plugin = TaskPlugin::new(task_cfg, storage, registry)?;
app.plugin(task_plugin).scan().start().awaitImplementations§
Source§impl TaskPlugin
impl TaskPlugin
Sourcepub fn new(
config: TaskWorkerConfig,
storage: Arc<dyn TaskStorage>,
registry: HandlerRegistry,
) -> Result<Self, String>
pub fn new( config: TaskWorkerConfig, storage: Arc<dyn TaskStorage>, registry: HandlerRegistry, ) -> Result<Self, String>
创建任务插件
config: TaskWorker 运行时配置(建议从[task]section 读取,支持 Deserialize)storage: 由业务方实现的持久化接口registry: 已注册 handler 的注册中心
Sourcepub fn metrics(&self) -> Arc<TaskMetrics>
pub fn metrics(&self) -> Arc<TaskMetrics>
返回任务指标(供外部查询)
Trait Implementations§
Source§impl Plugin for TaskPlugin
impl Plugin for TaskPlugin
Source§fn start<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = CoreResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn start<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = CoreResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
启动插件:在后台 tokio task 中启动 Worker 和 RetryScanner
Source§fn stop<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = CoreResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stop<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = CoreResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
停止插件:发送停止信号并等待后台任务完成
Source§fn depends_on(&self) -> &[&str]
fn depends_on(&self) -> &[&str]
依赖的其他插件名称(用于拓扑排序,保证启动顺序) Read more
Auto Trait Implementations§
impl !Freeze for TaskPlugin
impl !RefUnwindSafe for TaskPlugin
impl Send for TaskPlugin
impl Sync for TaskPlugin
impl Unpin for TaskPlugin
impl UnsafeUnpin for TaskPlugin
impl !UnwindSafe for TaskPlugin
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
Mutably borrows from an owned value. Read more