Skip to content

Larmbs/scheduled

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scheduled

The Scheduled Crate provides utilities for managing scheduled events in Rust applications. This is just a simple implementation of a event queue and is meant to be used in any automated applications.

Features

This scheduler uses chronos time system to specify dates and times so it is best to pair this with their types.

  • Schedule events to occur at specific dates or after certain durations.
  • Manage a queue of events, executing them when their activation time is reached.
  • Customizable event functions with the EventFunc type.

Example

use scheduled::{Scheduler, EventFunc};
use chrono::{Utc, Duration};

fn main() {
    // Create a scheduler
    let mut scheduler = Scheduler::new();

    // Schedule an event to occur at a specific date
    let end_date = Utc::now() + Duration::seconds(4);
    let event_func: EventFunc = Box::new(|time| println!("Event executed at {}", time));
    scheduler.schedule_date(end_date, event_func);

    // Schedule another event to occur after a certain duration from the current time
    let wait_duration = Duration::seconds(5);
    let event_func: EventFunc = Box::new(|time| println!("Another event executed at {}", time));
    scheduler.schedule_wait_from_now(wait_duration, event_func);

    loop {
        if scheduler.check() {
            // Print the count of remaining events in the scheduler
            println!("Remaining events in scheduler: {}", scheduler.get_event_count());
        } else {
            if scheduler.is_empty() {
                break;
            };
        };
    }

    println!("Done executing events");
}

Structs

Scheduler

This struct is responsible for managing the events you have as well as adding them and executing them.

Event

Internal representation of an event. It is a pair of do funcs and a date time.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages