用途:Apalis 是 Rust 的后台作业、任务队列与消息驱动系统框架,基于 tower::Service,可直接复用 tower 中间件生态。
主要能力:提供持久化任务队列、实时消息消费、重试逻辑、可观测性与优雅关闭。后端能力被拆分为 Backend、TaskSink、Metrics、Expose 等细粒度 trait,可按需依赖。任务用 Task<Args, Ctx, IdType> 包装,状态含 Pending、Scheduled、Running、Done、Failed、Retry、Killed。
使用方式:处理器是普通 async 函数,无需宏。用 WorkerBuilder 设置 backend、layer 与共享数据,再 build 并 run;多个作业类型各自建 worker,统一注册到 Monitor。可用 TaskBuilder 调度延迟任务,用 push_task 入队。错误类型 AbortError、RetryAfterError、DeferredError 控制重试或终止。
适用场景:后台邮件发送、报表生成、Web 框架(如 Axum)中异步入队、多作业类型并行处理、自定义监控面板。
限制:共享数据须实现 Clone;异步处理器内不可阻塞;自动重试需显式添加 retry 层;默认并发为 1;TaskId 需显式指定类型参数。具体版本与依赖以官方资料为准。