如何使用拆船机停止所有正在运行的集装箱?

时间:2019-10-28 17:11:02

标签: rust rust-tokio

我可以使用shiplift获取正在运行的容器的列表,但发现很难停止它们。经过反复试验,似乎我可以创建一个期货向量,然后将它们全部加入,以创建一个单一的期货返回。似乎没有调用这个加入的未来,并且容器永远都不会停止。是否有更好的方法来运行所有这些期货,然后返回结果?

let docker = connection.clone();
docker
    .containers()
    .list(&Default::default())
    .map(move |list| {
        let mut futures = Vec::new();
        for container in list {
            let cont = connection.containers().get(&container.id);
            println!("Stopping {}", cont.id());
            futures.push(cont.stop(Some(std::time::Duration::from_secs(1))));
            // futures.push(connection.containers().get(&container.id).stop(None).map_err(|_| println!("error")));
        }
        join_all(futures)
    })
    .map(|_| println!("Stopped all"))
    .map_err(|e| eprintln!("Error: {}", e))

0 个答案:

没有答案