13个版本 (8个破坏性更新)
0.12.1 | 2024年5月4日 |
---|---|
0.12.0 | 2024年3月31日 |
0.11.0 | 2023年9月26日 |
0.10.0 | 2022年2月23日 |
0.0.0 | 2019年12月3日 |
#650 in 异步
每月5,324次下载
在 4 crates 中使用
86KB
1.5K SLoC
Deadpool是一个简单的异步连接和任何类型对象的池。
功能
功能
描述 | 额外依赖 | 默认 | rt_tokio_1 |
---|---|---|---|
启用对tokio crate的支持 |
deadpool | 是/启用对tokio crate的支持 |
rt_async-std_1 |
启用对async-std crate的支持 |
rt_async | 是/std_1-否 |
serde |
启用对serde crate的支持 |
deadpool/serde , serde/derive |
使用tokio-amqp crate的示例 |
serde |
使用config
、dotenvy
和tokio-amqp
crate的示例
use std::sync::Arc;
use deadpool_lapin::{Config, Manager, Pool, Runtime};
use deadpool_lapin::lapin::{
options::BasicPublishOptions,
BasicProperties,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut cfg = Config::default();
cfg.url = Some("amqp://127.0.0.1:5672/%2f".into());
let pool = cfg.create_pool(Some(Runtime::Tokio1))?;
for _ in 1..10 {
let mut connection = pool.get().await?;
let channel = connection.create_channel().await?;
channel.basic_publish(
"",
"hello",
BasicPublishOptions::default(),
b"hello from deadpool",
BasicProperties::default(),
).await?;
}
Ok(())
}
许可
use std::sync::Arc;
use deadpool_lapin::Runtime;
use deadpool_lapin::lapin::{
options::BasicPublishOptions,
BasicProperties,
};
use dotenvy::dotenv;
#[derive(Debug, serde::Deserialize)]
struct Config {
#[serde(default)]
amqp: deadpool_lapin::Config
}
impl Config {
pub fn from_env() -> Result<Self, config::ConfigError> {
config::Config::builder()
.add_source(config::Environment::default().separator("__"))
.build()?
.try_deserialize()
}
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotenv().ok();
let mut cfg = Config::from_env().unwrap();
let pool = cfg.amqp.create_pool(Some(Runtime::Tokio1)).unwrap();
for _ in 1..10 {
let mut connection = pool.get().await?;
let channel = connection.create_channel().await?;
channel.basic_publish(
"",
"hello",
BasicPublishOptions::default(),
b"hello from deadpool",
BasicProperties::default(),
).await?;
}
Ok(())
}
许可
根据您的选择,受以下任一许可的约束:
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
依赖关系
~9–21MB
~317K SLoC