[英]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.