Функция interval_ at
pub fn interval_at(start: Instant, period: Duration) -> Interval
Доступна только при включённой возможности крейта
time.Создаёт новый Interval, который срабатывает с интервалом period, причём первый тик завершается в момент start. По умолчанию используется MissedTickBehavior Burst, но его можно настроить, вызвав set_missed_tick_behavior.
Интервал будет срабатывать бесконечно. В любой момент значение Interval можно удалить. Это отменит интервал.
Паники
Эта функция вызывает панику, если period равно нулю.
Примеры
use tokio::time::{interval_at, Duration, Instant};
let start = Instant::now() + Duration::from_millis(50);
let mut interval = interval_at(start, Duration::from_millis(10));
interval.tick().await; // ticks after 50ms
interval.tick().await; // ticks after 10ms
interval.tick().await; // ticks after 10ms
// approximately 70ms have elapsed.
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/time/fn.interval_at.html