Skip to content

Commit 92cb646

Browse files
committed
Log when waiting for too long
1 parent 7cd7920 commit 92cb646

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

crates/server/src/main.rs

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use std::{
22
path::PathBuf,
3+
pin::pin,
34
sync::{Arc, LazyLock},
5+
time::{Duration, Instant},
46
};
57

68
use miniserve::{http::StatusCode, Content, Request, Response};
@@ -50,14 +52,23 @@ fn chatbot_thread() -> (mpsc::Sender<Payload>, mpsc::Sender<()>) {
5052
while let Some((messages, responder)) = req_rx.recv().await {
5153
let doc_paths = chatbot.retrieval_documents(&messages);
5254
let docs = load_docs(doc_paths).await;
53-
let chat_fut = chatbot.query_chat(&messages, &docs);
54-
let cancel_fut = cancel_rx.recv();
55-
tokio::select! {
56-
response = chat_fut => {
57-
responder.send(Some(response)).unwrap();
58-
}
59-
_ = cancel_fut => {
60-
responder.send(None).unwrap();
55+
let mut chat_fut = pin!(chatbot.query_chat(&messages, &docs));
56+
let mut cancel_fut = pin!(cancel_rx.recv());
57+
let start = Instant::now();
58+
loop {
59+
let log_fut = tokio::time::sleep(Duration::from_secs(1));
60+
tokio::select! {
61+
response = &mut chat_fut => {
62+
responder.send(Some(response)).unwrap();
63+
break;
64+
}
65+
_ = &mut cancel_fut => {
66+
responder.send(None).unwrap();
67+
break;
68+
}
69+
_ = log_fut => {
70+
println!("Waiting for {} seconds", start.elapsed().as_secs());
71+
}
6172
}
6273
}
6374
}

0 commit comments

Comments
 (0)