client reuse connection

This commit is contained in:
2026-04-10 17:28:44 +08:00
parent 7accb43048
commit 0a4f6338a6
3 changed files with 45 additions and 29 deletions
+32 -22
View File
@@ -100,19 +100,24 @@ async fn main() -> anyhow::Result<()> {
continue;
};
if let TunnelEndpoint::Client(client) = endpoint {
if cancel_token.is_cancelled() {
return;
}
let permit = semaphore.clone().acquire_owned().await.unwrap();
let result = run(client, profile.clone()).await;
match result {
Ok(true) => {
post_task(profile.clone(), permit, cancel_token.clone()).await;
loop {
if client.get_client().await.is_err() {
break;
}
Err(error) => {
error!("{}", error);
if cancel_token.is_cancelled() {
return;
}
let permit = semaphore.clone().acquire_owned().await.unwrap();
let result = run(client.clone(), profile.clone()).await;
match result {
Ok(true) => {
post_task(profile.clone(), permit, cancel_token.clone()).await;
}
Err(error) => {
error!("{}", error);
}
_ => {}
}
_ => {}
}
}
}
@@ -139,19 +144,24 @@ async fn main() -> anyhow::Result<()> {
continue;
};
if let TunnelEndpoint::Client(client) = endpoint {
if cancel_token.is_cancelled() {
return;
}
let permit = semaphore.clone().acquire_owned().await.unwrap();
let result = run(client, profile.clone()).await;
match result {
Ok(true) => {
post_task(profile.clone(), permit, cancel_token.clone()).await;
loop {
if client.get_client().await.is_err() {
break;
}
Err(error) => {
error!("{}", error);
if cancel_token.is_cancelled() {
return;
}
let permit = semaphore.clone().acquire_owned().await.unwrap();
let result = run(client.clone(), profile.clone()).await;
match result {
Ok(true) => {
post_task(profile.clone(), permit, cancel_token.clone()).await;
}
Err(error) => {
error!("{}", error);
}
_ => {}
}
_ => {}
}
}
sleep(Duration::from_secs(10)).await;