Rustでtokio-timerのIntervalを使って定期処理を行う

JSのwindow.setIntervalみたいなことがしたい。tokio-timerを使うといいらしい。で、tokioは現在2.4が最新なんだけど、結構古いシステムなので古いtokioで今回はやっています。

tokio = "0.1"
tokio-timer = "0.2.12"

take(10)ってところで10回処理するって設定なんですが、これを取ると無限に実行されます。

use tokio::prelude::*;
use tokio::timer::Interval;
use std::time::{Duration, Instant};

fn main() {
    tokio::run(
        Interval::new(Instant::now(), Duration::new(1, 0))
            .take(10)
            .for_each(|instant| {
                println!("ヒャロー! instant={:?}", instant);
                Ok(())
            })
            .map_err(|e| panic!("ぐああああ; err={:?}", e)),
    );
}

参考

https://tokio.rs/docs/going-deeper/timers/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA