我一直在学习铁 rust ,现在我开始写我自己的学习例子。
我一直在尝试为rabbitMq(库项目是https://github.com/rabbitmq/rabbitmq-stream-rust-client)创建一个简单的 Package 器(生产者/消费者)。
问题是,我一直得到错误,流是找不到。
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: StreamDoesNotExist { stream: "loan_request" }
我的main代码如下所示:
mod consumer;
use tokio;
use consumer::{Consumer, BaseCallback};
#[tokio::main]
async fn main() {
let loan_request = BaseCallback {data: "{loan_id: 1}".to_string()};
let consumer_response = Consumer::set_event_callback("loan_request", loan_request).await;
}
我创建一个消费者和一个队列的代码如下:
use rabbitmq_stream_client::{Environment};
use serde_json;
use serde::{Serialize, Deserialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct BaseCallback {
pub data: String
}
pub struct Consumer {
environment: Environment,
callback: BaseCallback
}
impl Consumer {
async fn new_connection() -> Environment {
let environment_instance = Environment::builder()
.host("localhost")
.port(5552)
.build()
.await.unwrap();
environment_instance
}
pub async fn set_event_callback(event_name: &str, callback: BaseCallback) {
let connection = Self::new_connection().await;
let consumer = connection.consumer();
consumer
.build(event_name)
.await
.unwrap();
}
}
任何关于我做错了什么的建议都非常感谢。
1条答案
按热度按时间llycmphe1#
对于任何想知道的人,首先需要在RabbitMq上创建队列,为此使用如下的客户端
然后我们可以实现上面的消费者来消费,并处理“loan_request”队列中的事件。