6 个版本
0.2.0 | 2024年7月2日 |
---|---|
0.1.4 | 2023年11月2日 |
0.1.3 | 2024年7月2日 |
0.1.2 | 2023年6月6日 |
0.1.0 | 2023年3月14日 |
#9 in #cron-expression
每月 24 次下载
11KB
84 代码行数(不包括注释)
cron-job
cron-job
库允许您创建 cronjob。这基本上是 cron
库的实现。
入门
将以下内容添加到您的项目中
[dependencies]
cron_job = "0.2.0"
示例
您可以将自己的函数作为作业进行调度。
extern crate cron_job;
use cron_job::CronJob;
fn main() {
// Create CronJob
let mut cron = CronJob::default();
// Add the function
cron.new_job("* * * * * *", run_on_cron);
// Start job
cron.start();
}
// The function to be executed.
fn run_on_cron() {
println!("Executed function");
}
也可以添加具有不同 cron 表达式的多个函数。
extern crate cron_job;
use cron_job::CronJob;
fn main() {
// Create CronJob
let mut cron = CronJob::default();
// Add the function to be run every second
cron.new_job("* * * * * *", run_every_second);
// Add the function to be run every 5 seconds
cron.new_job("*/5 * * * * *", run_every_five_seconds);
// Start jobs
cron.start();
}
// The function to be executed every second.
fn run_every_second() {
println!("1 second");
}
// The function to be executed every 5 seconds.
fn run_every_five_seconds() {
println!("5 seconds");
}
运行实现 Job 特质的作业
由于用作作业的函数不能有任何参数,因此可以使用 Job
特质来实现结构体。这样,如果需要将任何参数传递给函数,则可以作为结构体属性传递。
extern crate cron_job;
use cron_job::CronJob;
fn main() {
// Create HelloJob
let helloJob = HelloJob{ name: "John" };
// Create CronJob
let mut cron = CronJob::default();
// Say hello every second
cron.new_job("* * * * * *", helloJob);
// Start jobs
cron.start();
}
// The job to be executed
struct HelloJob {
name: String
}
impl Job for HelloJob {
fn run(&self) {
println!("Hello, {}!", self.name);
}
}
函数和作业也可以混合使用。
extern crate cron_job;
use cron_job::CronJob;
fn main() {
// Create HelloJob
let helloJob = HelloJob{ name: "John" };
// Create CronJob
let mut cron = CronJob::default();
// Run function every second
cron.new_job("* * * * * *", run_every_second);
// Say hello every second
cron.new_job("* * * * * *", helloJob);
// Start jobs
cron.start();
}
// The function to be executed every second.
fn run_every_second() {
println!("1 second");
}
// The job to be executed
struct HelloJob {
name: String
}
// Very important, implement the Job trait and its functions.
impl Job for HelloJob {
fn run(&self) {
println!("Hello, {}!", self.name);
}
}
依赖项
~2–7.5MB
~47K SLoC