5个不稳定版本
0.4.2 | 2020年2月28日 |
---|---|
0.4.1 | 2020年2月27日 |
0.3.0 |
|
0.2.0 | 2020年2月27日 |
0.1.0 | 2020年2月27日 |
#1126 in 异步
13KB
92 行
可重启的未来
例如,您可能想要持续ping一个URL,直到它返回200或五秒钟过去。如果URL确实返回200,您可能想知道这花了多少时间。
此库包含一个名为 Restartable
的未来包装器。它包装您想要重试的未来,并在您提供的测试通过之前持续重试该未来。如果内部未来通过测试,则包装器解析您的值。但如果内部未来未通过测试,包装器将仅重启未来。假设超时尚未过期。
为此,您需要在实例化包装器时提供三件事
- 要轮询的未来
- 一个测试,即一个闭包,它从内部未来中获取值,对其进行测试,并返回结果
- 一个工厂,用于在之前的未来解析了失败的测试值时创建新未来。
包装器还会返回一些指标,例如,未来解决前经过的时间以及所需的重新启动次数。
要运行示例,
cargo run --example reqwest
cargo run --example rng
依赖关系
~1.5MB
~34K SLoC