dev-tool 0.1.12

dev-tool(变更为mitoo)是一个Rust工具包类库,对文件、加密解密、转码、正则、线程池、sqlite等方法进行封装,组成各种Util工具类。
Documentation
use std::time::Duration;
use tokio::time;

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();
    }
}