singleton-task 0.4.1

A singleton task based on tokio
Documentation

单例任务 (Singleton Task)

CI Crates.io Documentation License

描述

本项目实现了一个基于 Rust 的异步任务管理系统,主要功能包括任务状态管理、任务通信以及任务调度。核心特性如下:

  • 单例任务管理:通过 SingletonTask 结构体,确保一个任务在整个系统中只有一个实例运行。
  • 任务状态跟踪:任务的状态变化可通过 Context 进行跟踪和控制。
  • 异步支持:使用 async_traitFuture 实现异步任务处理。
  • 跨线程通信:通过自定义的 task_channel 实现任务间的同步和异步通信。

安装与使用

构建项目

确保你已安装 Rust 工具链,然后运行以下命令:

cargo build

运行示例

进入项目目录并运行示例代码:

cargo run --example task

项目结构

  • src/lib.rs:定义主要的 trait 和结构体,包括 Task, TaskBuilder, SingletonTask 等。
  • src/context.rs:实现任务上下文管理,支持状态变更和异步等待。
  • src/task_chan.rs:提供任务间通信的通道机制。
  • examples/task.rs:展示如何使用单例任务系统。
  • tests/test.rs:包含异步任务控制逻辑的测试用例。

测试

运行所有测试:

cargo test

运行多线程测试:

cargo test --test test -- --test-threads=1

贡献

欢迎贡献代码!请确保提交 PR 前运行下列检查:

# 格式化代码
cargo fmt

# 运行 Clippy 检查
cargo clippy

# 运行测试
cargo test

许可证

本项目采用 MulanPSL-2.0 许可证 - 详见 LICENSE 文件。