@@ -3,13 +3,15 @@ use dsh_sdk::graceful_shutdown::Shutdown;
3
3
use dsh_sdk:: rdkafka:: consumer:: { CommitMode , Consumer , StreamConsumer } ;
4
4
use dsh_sdk:: rdkafka:: message:: { BorrowedMessage , Message } ;
5
5
6
+ use log:: { info, error} ;
7
+
6
8
mod custom_metrics;
7
9
8
10
fn deserialize_and_print ( msg : & BorrowedMessage ) {
9
11
let payload = String :: from_utf8_lossy ( msg. payload ( ) . unwrap_or ( b"" ) ) ;
10
12
let key = String :: from_utf8_lossy ( msg. key ( ) . unwrap_or ( b"" ) ) ;
11
13
12
- println ! (
14
+ info ! (
13
15
"Received message from topic {} partition {} offset {} with key {:?} and payload {}" ,
14
16
msg. topic( ) ,
15
17
msg. partition( ) ,
@@ -28,14 +30,12 @@ async fn consume(consumer: StreamConsumer, shutdown: Shutdown) {
28
30
// Deserialize and print the message
29
31
deserialize_and_print( & msg) ;
30
32
// Commit the message
31
- match consumer. commit_message( & msg, CommitMode :: Sync )
32
- {
33
- Ok ( _) => { }
34
- Err ( e) => println!( "Error while committing message: {:?}" , e) ,
33
+ if let Err ( e) = consumer. commit_message( & msg, CommitMode :: Sync ) {
34
+ error!( "Error while committing message: {:?}" , e) ;
35
35
}
36
36
} ,
37
37
_ = shutdown. recv( ) => {
38
- println !( "Shutdown requested, breaking out of consumer" ) ;
38
+ info !( "Shutdown requested, breaking out of consumer" ) ;
39
39
consumer. unsubscribe( ) ;
40
40
break ;
41
41
}
@@ -76,14 +76,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
76
76
consumer_client_config. set ( "auto.offset.reset" , "latest" ) ;
77
77
78
78
// Create a new consumer instance
79
- let consumer: StreamConsumer = consumer_client_config
80
- . create ( )
81
- . expect ( "Consumer creation failed" ) ;
79
+ let consumer: StreamConsumer = consumer_client_config. create ( ) ?;
82
80
83
81
// Subscribe to the configured topics
84
- consumer
85
- . subscribe ( & topics)
86
- . expect ( "Can't subscribe to specified topics" ) ;
82
+ consumer. subscribe ( & topics) ?;
87
83
88
84
// Create handle for consuming messages,
89
85
let shutdown_clone = shutdown. clone ( ) ;
@@ -94,10 +90,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
94
90
// Wait for shutdown signal or that the consumer has stopped
95
91
tokio:: select! {
96
92
_ = shutdown. signal_listener( ) => {
97
- println !( "Shutdown signal received" ) ;
93
+ info !( "Shutdown signal received" ) ;
98
94
}
99
95
_ = consumer_handle => {
100
- println !( "Consumer stopped" ) ;
96
+ info !( "Consumer stopped" ) ;
101
97
shutdown. start( ) ; // Start the shutdown process (this will stop other potential running tasks that implemented the shutdown listener)
102
98
}
103
99
}
0 commit comments