tokio::timeを使うには、timeフィーチャーを指定する必要がある。
[dependencies] tokio = { version = "1.42.0", features=[〜, "time"] }
一定時間スリープする。
use std::time::Duration;
tokio::time::sleep(Duration::from_secs(2)).await;
現在時刻を取得する。時間を計るのに使える。(std::time::Instantのtokio版)
let start = tokio::time::Instant::now(); 〜 let elapsed /*Duration*/ = start.elapsed();
タイムアウト時間を設定して非同期処理を実行する。
use std::time::Duration;
let duration = Duration::from_secs(1); // タイムアウト時間 let result = tokio::time::timeout(duration, async { println!("sleep start"); tokio::time::sleep(Duration::from_secs(2)).await; println!("sleep end"); }) .await; match result { Ok(_) => println!("Ok"), Err(_) => println!("timeout"), };