Expand description
A runtime agnostic crete for scheduling async task.
§Example
Oneshot schedule
use see_you_later::once;
use std::sync::{
atomic::{AtomicBool, Ordering},
Arc,
};
use std::time::Duration;
#[smol_potat::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let invoked = Arc::new(AtomicBool::new(false));
let invoked1 = invoked.clone();
let (_, task) = once(Duration::from_secs(1), || async {
invoked1.store(true, Ordering::Relaxed);
});
task.await;
assert_eq!(true, invoked.load(Ordering::Relaxed));
Ok(())
}
Every x schedule
use see_you_later::every;
use smol::{self, Task};
use std::time::Duration;
use wait_for_me::CountDownLatch;
#[smol_potat::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let latch = CountDownLatch::new(10);
let inner_latch = latch.clone();
let (cancel, task) = every(Duration::from_millis(100), || async {
inner_latch.count_down().await;
});
Task::spawn(async move {
latch.wait().await;
cancel.cancel().await
})
.detach();
task.await;
Ok(())
}
Structs§
- Delayed
Task - A Future that represent a delayed task
Functions§
- every
- Schedule a periodic task every
Duration
. The first task is scheduled immediately and subsequently with the given delay from the termination of the last execution Returns the scheduled task which needs to be awaited on and the cancel token. - once
- Schedule a onceshot task after the
Duration
parameter. Returns the scheduled task which needs to be awaited on and the cancel token.