| Crates.io | singleton-task |
| lib.rs | singleton-task |
| version | 0.4.1 |
| created_at | 2025-04-25 14:39:48.534577+00 |
| updated_at | 2025-07-15 14:02:34.358584+00 |
| description | A singleton task based on tokio |
| homepage | |
| repository | https://github.com/ZR233/singleton-task |
| max_upload_size | |
| id | 1649078 |
| size | 74,041 |
本项目实现了一个基于 Rust 的异步任务管理系统,主要功能包括任务状态管理、任务通信以及任务调度。核心特性如下:
SingletonTask 结构体,确保一个任务在整个系统中只有一个实例运行。Context 进行跟踪和控制。async_trait 和 Future 实现异步任务处理。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 文件。