6个版本 (3个重大更改)
0.4.0 | 2024年7月5日 |
---|---|
0.3.0 | 2024年2月18日 |
0.2.0 | 2023年11月6日 |
0.1.2 | 2023年8月7日 |
#1041 in 游戏开发
每月60次下载
17KB
bevy_cronjob
bevy_cronjob
是一个用于在Bevy中运行cron作业(重复计划)的简单助手。
使用方法
use std::time::Duration;
use bevy::{ MinimalPlugins};
use bevy::app::{App, PluginGroup, ScheduleRunnerPlugin, Update};
use bevy::log::{info, LogPlugin};
use bevy_ecs::prelude::{IntoSystemConfigs};
use bevy_cronjob::schedule_passed;
fn main() {
App::new()
.add_plugins(
MinimalPlugins.set(ScheduleRunnerPlugin::run_loop(Duration::from_secs_f64(
1.0 / 60.0,
))),
)
.add_plugins(LogPlugin::default())
.add_systems(Update, print_per_5_sec.run_if(schedule_passed("0/5 * * * * *")))
.add_systems(Update, print_per_min.run_if(schedule_passed("0 * * * * *")))
.add_systems(Update, print_per_hour.run_if(schedule_passed("0 0 * * * *")))
.run();
}
fn print_per_5_sec() {
info!("print every 5 sec")
}
fn print_per_min() {
info!("print every minute")
}
fn print_per_hour() {
info!("print every hour")
}
表达式
计划表达式基于 cron
秒 | 分 | 小时 | 月份中的天数 | 月份 | 星期中的某一天 | 年份 |
---|---|---|---|---|---|---|
* | * | * | * | * | * | * |
0-59 | 0-59 | 0-23 | 1-23 | 1-12 | 1-7 | 1970-2100 |
时间以UTC指定。注意年份可能被省略。
可以使用逗号分隔的值,例如 1,2,3
。例如,一个每15秒执行的计划为 0,15,30,45 * * * * *
。
可以使用破折号指定范围。例如 1-5 * * * * *
将在分钟的前5秒内每秒执行一次。
支持版本
bevy | bevy_cronjob |
---|---|
0.14 | 0.4 |
0.13 | 0.3 |
0.12 | 0.2 |
0.11 | 0.1 |
许可证
根据以下任一许可证双授权
- MIT
- Apache 2.0
依赖关系
~10–18MB
~234K SLoC