Skip to content

Commit 1a3a019

Browse files
Merge pull request #160 from code0-tech/#158-retry-sending-definitons
retry sending definitons
2 parents ab60f09 + 7cd0cdc commit 1a3a019

3 files changed

Lines changed: 26 additions & 12 deletions

File tree

Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ edition = "2024"
88

99
[workspace.dependencies]
1010
async-trait = "0.1.89"
11-
code0-flow = { version = "0.0.30" }
11+
code0-flow = { version = "0.0.31" }
1212
tucana = { version = "0.0.68" }
1313
tokio = { version = "1.44.1", features = ["rt-multi-thread", "signal"] }
1414
log = "0.4.27"

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)