#events #scheduling #toml

bloodbath

这是 Bloodbath 事件调度库的 Rust 实现

5 个版本

0.1.4 2024年5月26日
0.1.3 2023年4月27日
0.1.2 2023年4月27日
0.1.1 2023年4月27日
0.1.0 2023年4月27日

#12 in #scheduling

Download history 147/week @ 2024-05-23 14/week @ 2024-05-30 6/week @ 2024-06-06 2/week @ 2024-06-27 13/week @ 2024-07-04

268 每月下载量

MIT 许可证

11KB
196

bloodbath-rust

这是 Bloodbath 事件调度库的 Rust 实现。此库将迁移 到这里。

入门

要在您的 Rust 项目中使用此库,请将以下内容添加到您的 Cargo.toml 文件中

[dependencies]
bloodbath = "0.1.3"
tokio = { version = "1", features = ["full"] }

或者运行以下命令将依赖项添加到项目的 Cargo.toml 文件中

cargo add bloodbath

用法

以下是一个使用 bloodbath-rust 库的基本示例

//[your_project_name]/src/main.rs

use bloodbath::{Bloodbath, Event, BloodbathEvent};
use std::sync::Arc;

#[tokio::main]
async fn main() {
    // Create a Bloodbath instance with your API key
    let bloodbath = Arc::new(Bloodbath::new("your_api_key"));

    // Schedule an event
    let timestamp_str = "2023-04-27T12:00:00Z";
    let timestamp = chrono::DateTime::parse_from_rfc3339(timestamp_str)
        .unwrap()
        .timestamp();
    let event = BloodbathEvent {
        scheduled_for: timestamp,
        headers: Default::default(),
        method: "POST".to_owned(), // or simply Default::default(),
        body: "some body content".to_owned(), // or simply Default::default(),
        endpoint: "https://api.acme.com/path".to_owned(),
    };
    let result = Event::schedule(&bloodbath, &event).await;

    match result {
        Ok(event) => {
            println!("Event scheduled successfully:");
            println!("ID: {}", event.id);
            println!("Name: {}", event.name);
            println!("Timestamp: {}", event.timestamp);
        },
        Err(e) => eprintln!("Error scheduling event: {:?}", e),
    }
}

将 "your_api_key" 替换为您的 Bloodbath API 密钥。

重要:要使用最新未发布版本,请将其添加到您的 Cargo.toml 文件中

[dependencies]
bloodbath = { git = "https://github.com/avosa/bloodbath-rust.git" }
tokio = { version = "1", features = ["full"] }

测试

cargo test --lib

结论

Bloodbath 是一个强大的库,它简化了事件调度和管理。有关更多信息,请参阅 官方文档

依赖项

~10–23MB
~352K SLoC