🦀/100 Projects/Notes/Source

src/main.rs

View on GitHub
use std::thread;
use std::time::{Duration, Instant};
 
#[derive(Debug)]
struct Task {
    name: String,
    delay_secs: u64,
}
 
fn main() {
    println!("🕒 Task Scheduler Simulation");
 
    let mut tasks = vec![
        Task { name: "Backup".into(), delay_secs: 3 },
        Task { name: "Clean Temp Files".into(), delay_secs: 1 },
        Task { name: "Send Report".into(), delay_secs: 2 },
    ];
 
    tasks.sort_by_key(|t| t.delay_secs); // optional: shortest job first
 
    let start = Instant::now();
 
    for task in tasks {
        let wait = Duration::from_secs(task.delay_secs);
        println!("⏳ Waiting {}s to run '{}'", task.delay_secs, task.name);
        thread::sleep(wait);
        let elapsed = Instant::now().duration_since(start).as_secs();
        println!("✅ [{}s] Task '{}' completed", elapsed, task.name);
    }
 
    println!("🎯 All tasks completed.");
}

← Back to folder