Skip to content

Commit f90a2df

Browse files
committed
some refactoring
1 parent df6a3e9 commit f90a2df

File tree

5 files changed

+32
-38
lines changed

5 files changed

+32
-38
lines changed

protocol/src/commands/superstream_partitions.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ use std::io::Write;
22

33
#[cfg(test)]
44
use fake::Fake;
5-
<<<<<<< HEAD
6-
=======
75

8-
>>>>>>> 4a7cb45 (refactoring tests)
96
use super::Command;
107
use crate::{
118
codec::{Decoder, Encoder},

src/environment.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ use crate::{
1212
producer::ProducerBuilder,
1313
stream_creator::StreamCreator,
1414
superstream::RoutingStrategy,
15-
superstream_producer::SuperStreamProducerBuilder,
1615
superstream_consumer::SuperStreamConsumerBuilder,
16+
superstream_producer::SuperStreamProducerBuilder,
1717
RabbitMQStreamResult,
1818
};
1919

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ pub mod types {
9999
pub use crate::stream_creator::StreamCreator;
100100
pub use crate::superstream::HashRoutingMurmurStrategy;
101101
pub use crate::superstream::RoutingKeyRoutingStrategy;
102-
pub use crate::superstream_consumer::SuperStreamConsumer;
103102
pub use crate::superstream::RoutingStrategy;
103+
pub use crate::superstream_consumer::SuperStreamConsumer;
104104
pub use rabbitmq_stream_protocol::message::Message;
105105
pub use rabbitmq_stream_protocol::{Response, ResponseCode, ResponseKind};
106106

src/superstream_consumer.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
use std::sync::Arc;
22

3-
use rabbitmq_stream_protocol::{commands::subscribe::OffsetSpecification, message::Message};
3+
use rabbitmq_stream_protocol::{commands::subscribe::OffsetSpecification};
44

55
use crate::superstream::DefaultSuperStreamMetadata;
66
use crate::{error::ConsumerCreateError, Client, Consumer, Environment};
77

8-
type FilterPredicate = Option<Arc<dyn Fn(&Message) -> bool + Send + Sync>>;
8+
//type FilterPredicate = Option<Arc<dyn Fn(&Message) -> bool + Send + Sync>>;
99

1010
/// API for consuming RabbitMQ stream messages
1111
#[derive(Clone)]
1212
pub struct SuperStreamConsumer {
13-
pub internal: Arc<SuperStreamConsumerInternal>,
13+
internal: Arc<SuperStreamConsumerInternal>,
1414
}
1515

1616
struct SuperStreamConsumerInternal {
1717
client: Client,
1818
super_stream: String,
1919
offset_specification: OffsetSpecification,
20-
pub consumers: Vec<Consumer>,
20+
consumers: Vec<Consumer>,
2121
}
2222

2323
/// Builder for [`Consumer`]
@@ -68,15 +68,14 @@ impl SuperStreamConsumerBuilder {
6868
})
6969
}
7070

71-
pub fn offset(mut self, offset_specification: OffsetSpecification) -> Self {
71+
pub async fn offset(mut self, offset_specification: OffsetSpecification) -> Self {
7272
self.offset_specification = offset_specification;
7373
self
7474
}
7575
}
7676

77-
impl SuperStreamConsumer {
78-
79-
pub async fn get_consumers(&self) -> &Vec<Consumer> {
80-
return &self.internal.consumers
77+
impl SuperStreamConsumer {
78+
pub async fn get_consumers(&self) -> &Vec<Consumer> {
79+
return &self.internal.consumers;
8180
}
8281
}

tests/integration/consumer_test.rs

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::time::Duration;
33
use crate::common::TestEnvironment;
44
use fake::{Fake, Faker};
55
use futures::StreamExt;
6-
use tokio::task;
76
use rabbitmq_stream_client::{
87
error::{
98
ClientError, ConsumerCloseError, ConsumerDeliveryError, ConsumerStoreOffsetError,
@@ -12,11 +11,12 @@ use rabbitmq_stream_client::{
1211
types::{Delivery, Message, OffsetSpecification, SuperStreamConsumer},
1312
Consumer, FilterConfiguration, NoDedup, Producer,
1413
};
14+
use tokio::task;
1515

16+
use rabbitmq_stream_client::types::{HashRoutingMurmurStrategy, RoutingStrategy};
1617
use rabbitmq_stream_protocol::ResponseCode;
17-
use std::sync::Arc;
1818
use std::sync::atomic::{AtomicU32, Ordering};
19-
use rabbitmq_stream_client::types::{HashRoutingMurmurStrategy, RoutingStrategy};
19+
use std::sync::Arc;
2020

2121
#[tokio::test(flavor = "multi_thread")]
2222
async fn consumer_test() {
@@ -79,13 +79,14 @@ async fn super_stream_consumer_test() {
7979
.await
8080
.unwrap();
8181

82-
static super_stream_consumer: SuperStreamConsumer = env
83-
.env
84-
.super_stream_consumer()
85-
.offset(OffsetSpecification::Next)
86-
.build(&env.stream)
87-
.await
88-
.unwrap();
82+
let super_stream_consumer: Arc<SuperStreamConsumer> = Arc::new(
83+
env.env
84+
.super_stream_consumer()
85+
//.offset(OffsetSpecification::Next)
86+
.build(&env.stream)
87+
.await
88+
.unwrap(),
89+
);
8990

9091
for n in 0..message_count {
9192
let msg = Message::builder().body(format!("message{}", n)).build();
@@ -97,22 +98,19 @@ async fn super_stream_consumer_test() {
9798
.unwrap();
9899
}
99100

100-
101101
let received_messages = Arc::new(AtomicU32::new(0));
102-
let consumers = super_stream_consumer.get_consumers().await;
103102

104103
let mut tasks = Vec::new();
105-
for mut consumer in consumers.into_iter() {
106-
let received_messages_outer = received_messages.clone();
107-
tasks.push(task::spawn(async move {
108-
let inner_received_messages = received_messages_outer.clone();
109-
let delivery = consumer.next().await.unwrap();
110-
let _ = String::from_utf8(delivery.unwrap().message().data().unwrap().to_vec()).unwrap();
111-
inner_received_messages.fetch_add(1, Ordering::Relaxed);
112-
113-
}));
114-
}
115-
104+
for mut consumer in super_stream_consumer.get_consumers().await.into_iter() {
105+
let received_messages_outer = received_messages.clone();
106+
tasks.push(task::spawn(async move {
107+
let inner_received_messages = received_messages_outer.clone();
108+
let delivery = consumer.next().await.unwrap();
109+
let _ =
110+
String::from_utf8(delivery.unwrap().message().data().unwrap().to_vec()).unwrap();
111+
inner_received_messages.fetch_add(1, Ordering::Relaxed);
112+
}));
113+
}
116114
futures::future::join_all(tasks).await;
117115

118116
assert!(received_messages.fetch_add(1, Ordering::Relaxed) == message_count);
@@ -398,7 +396,7 @@ async fn consumer_test_with_store_offset() {
398396
// Store an offset
399397
if i == offset_to_store {
400398
//Store the 5th element produced
401-
let result = consumer_store
399+
let _ = consumer_store
402400
.store_offset(delivery.unwrap().offset())
403401
.await;
404402
}

0 commit comments

Comments
 (0)