2 个版本
0.1.1 | 2022 年 11 月 22 日 |
---|---|
0.1.0 | 2022 年 11 月 18 日 |
#1302 在 Rust 模式
72KB
2K SLoC
什么是 bronze?
Bronze:Rust 中的工作流调度器
入门
待办事项
示例
- 通过宏
dag
创建工作流,并使用 cron 表达式提交到调度器
use bronzeflow::prelude::*;
fn main() {
// Create a session to submit task/workflow to scheduler
let mut s = SessionBuilder::default().build().unwrap();
// Create a workflow
let wf = dag!(
"A" => || println!("Task A") => dag!(
"A1" => || println!("Task A1"),
"A2" => || println!("Task A2"),
"C1" => dag!(
"C1" => || println!("Task C1") => dag!(
"C11" => || println!("Task C11")
)
)
)
)
.build()
.unwrap();
// Print the dependencies tree
wf.print_tree();
// Submit workflow to scheduler
s.submit("1/2 * * * * *", wf).unwrap();
// Sleep 5 seconds
std::thread::sleep(std::time::Duration::from_secs(5));
}
开发
从源代码构建
待办事项
待办事项列表
核心功能
- 为 dag 和任务添加执行器插件系统。
- 支持异步函数和例程。
- 使用 GitHub CI/CD。
- 从动态链接库(ffi)保存和加载任务。
- 优化任务设计以更好地扩展。
- 支持多语言。
- 添加具有本地事件循环(epoll、kqueue 等)的时间触发器。
- 添加非线程安全版本以实现高性能。
- 添加“精确一次”执行语义。
- 添加统一常见存储支持,该支持将被其他存储插件(如数据库、zk 等)使用。
- 添加数据库存储。
依赖项
~7–14MB
~164K SLoC