Skip to content

Commit 465b6a2

Browse files
committed
wip(refactor(bridge-indexer)): CancellationToken -> Service
1 parent f0d3f11 commit 465b6a2

File tree

5 files changed

+22
-20
lines changed

5 files changed

+22
-20
lines changed

Cargo.lock

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

crates/sui-bridge-indexer-alt/Cargo.toml

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

99
[dependencies]
1010
tokio.workspace = true
11-
tokio-util.workspace = true
1211
anyhow.workspace = true
1312
sui-bridge.workspace = true
1413
sui-bridge-schema.workspace = true

crates/sui-bridge-indexer-alt/src/main.rs

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ use sui_bridge_indexer_alt::metrics::BridgeIndexerMetrics;
1212
use sui_bridge_schema::MIGRATIONS;
1313
use sui_indexer_alt_framework::ingestion::{ClientArgs, ingestion_client::IngestionClientArgs};
1414
use sui_indexer_alt_framework::postgres::DbArgs;
15+
use sui_indexer_alt_framework::service::Error;
1516
use sui_indexer_alt_framework::{Indexer, IndexerArgs};
1617
use sui_indexer_alt_metrics::{MetricsArgs, MetricsService};
17-
use tokio_util::sync::CancellationToken;
1818
use url::Url;
1919

2020
#[derive(Parser)]
@@ -49,18 +49,14 @@ async fn main() -> Result<(), anyhow::Error> {
4949
remote_store_url,
5050
} = Args::parse();
5151

52-
let cancel = CancellationToken::new();
52+
let is_bounded_job = indexer_args.last_checkpoint.is_some();
5353
let registry = Registry::new_custom(Some("bridge".into()), None)
5454
.context("Failed to create Prometheus registry.")?;
5555

5656
// Initialize bridge-specific metrics
5757
let bridge_metrics = BridgeIndexerMetrics::new(&registry);
5858

59-
let metrics = MetricsService::new(
60-
MetricsArgs { metrics_address },
61-
registry,
62-
cancel.child_token(),
63-
);
59+
let metrics = MetricsService::new(MetricsArgs { metrics_address }, registry);
6460

6561
let metrics_prefix = None;
6662
let mut indexer = Indexer::new_from_pg(
@@ -78,7 +74,6 @@ async fn main() -> Result<(), anyhow::Error> {
7874
Some(&MIGRATIONS),
7975
metrics_prefix,
8076
metrics.registry(),
81-
cancel.clone(),
8277
)
8378
.await?;
8479

@@ -104,11 +99,23 @@ async fn main() -> Result<(), anyhow::Error> {
10499
.concurrent_pipeline(ErrorTransactionHandler, Default::default())
105100
.await?;
106101

107-
let h_indexer = indexer.run().await?;
108-
let h_metrics = metrics.run().await?;
102+
let s_indexer = indexer.run().await?;
103+
let s_metrics = metrics.run().await?;
109104

110-
let _ = h_indexer.await;
111-
cancel.cancel();
112-
let _ = h_metrics.await;
113-
Ok(())
105+
match s_indexer.attach(s_metrics).main().await {
106+
Ok(()) => Ok(()),
107+
Err(Error::Terminated) => {
108+
if is_bounded_job {
109+
std::process::exit(1);
110+
} else {
111+
Ok(())
112+
}
113+
}
114+
Err(Error::Aborted) => {
115+
std::process::exit(1);
116+
}
117+
Err(Error::Task(_)) => {
118+
std::process::exit(2);
119+
}
120+
}
114121
}

crates/sui-checkpoint-blob-indexer/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ path = "src/main.rs"
1515

1616
[dependencies]
1717
sui-config.workspace = true
18-
sui-futures.workspace = true
1918
sui-indexer-alt-framework.workspace = true
2019
sui-indexer-alt-framework-store-traits.workspace = true
2120
sui-indexer-alt-object-store.workspace = true

crates/sui-checkpoint-blob-indexer/src/main.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@ use object_store::{
88
gcp::GoogleCloudStorageBuilder, http::HttpBuilder, local::LocalFileSystem,
99
};
1010
use sui_checkpoint_blob_indexer::{CheckpointBlobPipeline, EpochsPipeline};
11-
use sui_futures::service::Error;
11+
use sui_indexer_alt_framework::service::Error;
1212
use sui_indexer_alt_framework::{Indexer, IndexerArgs, ingestion::ClientArgs};
1313
use sui_indexer_alt_metrics::MetricsArgs;
1414
use sui_indexer_alt_object_store::ObjectStore;
15-
use tracing::error;
1615
use url::Url;
1716

1817
#[derive(Debug, clap::Parser)]

0 commit comments

Comments
 (0)