11 个不稳定版本 (4 个破坏性更新)

0.5.0 2023 年 11 月 17 日
0.4.4 2023 年 11 月 17 日
0.4.3 2023 年 8 月 15 日
0.4.2 2023 年 7 月 24 日
0.1.2 2023 年 1 月 7 日

#890 in 编码

MIT 许可证

26KB
567

tokio-fluent

Crates.io Documentation CI

使用 fluentdtokio 客户端。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
tokio-fluent = "0.5.0"

示例

use std::collections::HashMap;

use tokio_fluent::{Client, Config, FluentClient};
use tokio_fluent::record::{Map, Value};
use tokio_fluent::record_map;

#[tokio::main]
async fn main() {
    // Connect to server using TCP
    let client = Client::new_tcp(
        "127.0.0.1:24224".parse().unwrap(),
        &Config {..Default::default()}
    )
    .await
    .unwrap();
    // Or connecting using unix socket
    let client_unix = Client::new_unix(
        "/path/to/fluentd.sock",
        &Config {..Default::default()}
    )
    .await
    .unwrap();

    // With Map::new()
    let mut map = Map::new();
    map.insert("age".to_string(), 22.into());
    map.insert(
        "scores".to_string(),
        vec![80, 90]
            .into_iter()
            .map(|e| e.into())
            .collect::<Vec<_>>()
            .into(),
    );
    client.send("fluent.test", map).unwrap();

    // With record_map! macro
    let map_from_macro = record_map!(
        "age".to_string() => 22.into(),
        "scores".to_string() => [80, 90].into_iter().map(|e| e.into()).collect::<Vec<_>>().into(),
    );
    client.send("fluent.test", map_from_macro).unwrap();
}

设置配置值

let client = Client::new_tcp(
        "127.0.0.1:24224".parse().unwrap(),
        &Config {..Default::default()}
    )
    .await
    .unwrap();

超时

将连接到目的地的超时值设置为 std::time::Duration。默认值为 3 秒。

重试等待时间

设置第一次重试的初始等待时间长度,以毫秒为单位。实际的等待重试时间将是 r * 1.5^(N-1) (r:此值,N:重试次数)。默认值为 500。

最大重试次数

设置最大重试次数。如果重试次数超过此值,写入/发送操作将失败。默认值为 10。

最大重试等待时间

重试之间等待的最大持续时间,以毫秒为单位。如果计算的重试等待时间超过此值,操作将失败。默认值为 60,000(60 秒)。

依赖关系

~4–14MB
~149K SLoC