[−][src]Module tokio::time
Utilities for tracking time.
This module provides a number of types for executing code after a set period of time.
-
Delay
is a future that does no work and completes at a specificInstant
in time. -
Interval
is a stream yielding a value at a fixed period. It is initialized with aDuration
and repeatedly yields each time the duration elapses. -
Timeout
: Wraps a future or stream, setting an upper bound to the amount of time it is allowed to execute. If the future or stream does not complete in time, then it is canceled and an error is returned. -
DelayQueue
: A queue where items are returned once the requested delay has expired.
These types are sufficient for handling a large number of scenarios involving time.
These types must be used from within the context of the Runtime
.
Examples
Wait 100ms and print "Hello World!"
use tokio::time::delay_for; use std::time::Duration; #[tokio::main] async fn main() { delay_for(Duration::from_millis(100)).await; println!("100 ms have elapsed"); }
Require that an operation takes no more than 300ms. Note that this uses the
timeout
function on the FutureExt
trait. This trait is included in the
prelude.
use tokio::time::{timeout, Duration}; async fn long_future() { // do work here } let res = timeout(Duration::from_secs(1), long_future()).await; if res.is_err() { println!("operation timed out"); }
Modules
delay_queue | A queue of delayed elements. |
Structs
Delay | Future returned by |
DelayQueue | A queue of delayed elements. |
Duration | A |
Elapsed | Error returned by |
Error | Errors encountered by the timer implementation. |
Instant | A measurement of the system clock, useful for talking to external entities like the file system or other processes. |
Interval | Stream returned by |
Throttle | Stream for the |
Timeout | Future returned by |
Functions
delay_for | Waits until |
delay_until | Waits until |
interval | Creates new |
interval_at | Creates new |
throttle | Slows down a stream by enforcing a delay between items. They will be produced not more often than the specified interval. |
timeout | Require a |
timeout_at | Require a |