簡體   English   中英

如何使生銹持續時間沒有數字計算

[英]how to make the rust duration without number calculate

我使用這段代碼來做一個生銹的間隔:

use std::time::Duration;
use tokio::time;

#[tokio::main]
async fn main() {
    let mut interval = time::interval(Duration::from_millis(10000));
    loop {
        interval.tick().await;

        println!("{}","trigger")
    }
}

當我想將間隔設置為 1 小時時,我必須像這樣寫1000 * 60 * 60的持續時間。 有沒有像Duration::hours(1)這樣的簡單方法? 我試過chrono,但似乎與tokio不兼容。

您可以使用擴展特征在Duration上實現hours()

use std::time::Duration;
use tokio::time;

trait DurationExt {
    fn from_hours(hours: u64) -> Duration;
}

impl DurationExt for Duration {
    fn from_hours(hours: u64) -> Duration {
        Duration::from_secs(hours * 60 * 60)
    }
}

#[tokio::main]
async fn main() {
    let mut interval = time::interval(Duration::from_hours(1));
    loop {
        interval.tick().await;

        println!("{}","trigger")
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM