Skip to content

Commit 7cd0cdc

Browse files
committed
feat: added inifnite retry definition update
1 parent 88ed065 commit 7cd0cdc

1 file changed

Lines changed: 19 additions & 5 deletions

File tree

crates/taurus/src/main.rs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ use futures_lite::StreamExt;
1414
use log::error;
1515
use prost::Message;
1616
use std::collections::HashMap;
17-
use std::time::Instant;
17+
use std::time::{Duration, Instant};
1818
use taurus_core::context::context::Context;
1919
use taurus_core::context::executor::Executor;
2020
use taurus_core::context::registry::FunctionStore;
2121
use taurus_core::context::signal::Signal;
2222
use tokio::signal;
23+
use tokio::time::sleep;
2324
use tonic_health::pb::health_server::HealthServer;
2425
use tucana::shared::value::Kind;
2526
use tucana::shared::{
@@ -111,17 +112,30 @@ async fn main() {
111112
None
112113
};
113114

114-
// Optional: dynamic mode sync at startup
115115
if config.mode == DYNAMIC {
116-
FlowUpdateService::from_url(
116+
let definition_service = FlowUpdateService::from_url(
117117
config.aquila_url.clone(),
118118
config.definitions.clone().as_str(),
119119
config.aquila_token.clone(),
120120
)
121-
.await
122-
.send()
123121
.await;
124122

123+
let mut success = false;
124+
let mut count = 1;
125+
while !success {
126+
success = definition_service.send_with_status().await;
127+
if success {
128+
break;
129+
}
130+
131+
log::warn!(
132+
"Updating definitions failed, trying again in 2 secs (retry number {})",
133+
count
134+
);
135+
count += 1;
136+
sleep(Duration::from_secs(3)).await;
137+
}
138+
125139
let usage_service = TaurusRuntimeUsageService::from_url(
126140
config.aquila_url.clone(),
127141
config.aquila_token.clone(),

0 commit comments

Comments
 (0)