3个版本 (破坏性更新)
0.3.0 | 2019年11月30日 |
---|---|
0.2.0 | 2019年1月13日 |
0.1.0 | 2019年1月11日 |
#682 in 并发
13KB
314 行
futures-dagtask
一种基于有向无环图的任务队列,允许您指定并发任务之间的依赖关系。
用法
use futures::future;
use futures_dagtask::TaskGraph;
let mut graph = TaskGraph::new();
let zero = graph.add_task(&[], future::ready::<u32>(0))?;
let one = graph.add_task(&[], future::ready::<u32>(1))?;
let two = graph.add_task(&[one], future::ready::<u32>(2))?;
let (add, exec) = graph.execute();
// spawn(exec.for_each(drop));
let _three = add.add_task(&[two], future::ready(3)).await?;
在这个例子中,zero
和 one
将会并发执行,但 two
将在 one
完成后执行。
由于设计简单,我们永远不会遇到循环依赖。
许可证
本项目采用 MIT 许可证。
依赖
~0.7–1MB
~18K SLoC