3个版本 (破坏性更新)

0.3.0 2019年11月30日
0.2.0 2019年1月13日
0.1.0 2019年1月11日

#682 in 并发

MIT 许可证

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?;

在这个例子中,zeroone 将会并发执行,但 two 将在 one 完成后执行。

由于设计简单,我们永远不会遇到循环依赖。

许可证

本项目采用 MIT 许可证

依赖

~0.7–1MB
~18K SLoC