S-JIS[2024-12-15] 変更履歴

tokio::timeメモ

Rusttokioクレートのtimeモジュールのメモ。


概要

tokio::timeを使うには、timeフィーチャーを指定する必要がある。

Cargo.toml:

[dependencies]
tokio = { version = "1.42.0", features=[〜, "time"] }

sleep

一定時間スリープする。

use std::time::Duration;
    tokio::time::sleep(Duration::from_secs(2)).await;

Instant

現在時刻を取得する。時間を計るのに使える。(std::time::Instantのtokio版)

    let start = tokio::time::Instant::now();
〜
    let elapsed /*Duration*/ = start.elapsed();

timeout

タイムアウト時間を設定して非同期処理を実行する。

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"),
    };

tokioへ戻る / Rustへ戻る / 技術メモへ戻る
メールの送信先:ひしだま