mitoo 0.3.0

mitoo is a Rust toolkit library that encapsulates methods such as configuration reading, file operations, encryption and decryption, transcoding, regular expressions, threading, collections, trees, sqlite, rabbitMQ, etc., and customizes or integrates various Util tool classes.
Documentation
use std::time::Duration;
use tokio::time;

/// Scheduled task utility class
///
/// TODO 后续添加cron表达式相关
pub struct SchedulingUtil;

impl SchedulingUtil {
    
    /// 设置一个定时任务,按照指定的时间间隔重复执行
    ///
    /// # 参数
    /// * `task` - 要执行的任务函数,该函数不接受参数且无返回值
    /// * `interval` - 执行间隔时间,单位为秒
    ///
    /// # 返回值
    /// 无返回值
    ///
    /// # 说明
    /// 该函数会创建一个定时器,按照指定的间隔时间无限循环执行传入的任务函数
    pub async fn set_interval(mut task: impl FnMut(), interval: u64) {
        // 创建定时器实例,用于控制任务执行间隔
        let mut interval = time::interval(Duration::from_secs(interval));
        loop {
            // 等待下一个时间点到达
            interval.tick().await;
            // 执行任务函数
            task();
        }
    }

    /// 异步设置超时执行任务的函数
    ///
    /// 该函数会等待指定的超时时间后执行传入的任务闭包
    ///
    /// # 参数
    /// * `task` - 一个只执行一次的闭包函数,在超时结束后被调用
    /// * `timeout` - 超时时间,单位为秒
    ///
    /// # 返回值
    /// 无返回值
    pub async fn set_timeout(task: impl FnOnce(), timeout: u64) {
        // 等待指定的超时时间
        time::sleep(Duration::from_secs(timeout)).await;
        // 执行传入的任务
        task();
    }
}