Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 412820a587 |
+12
-3
@@ -93,7 +93,7 @@ impl Infra {
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
};
|
};
|
||||||
|
|
||||||
let is_new = relay.synced == 0;
|
let is_new = self.relay_sync_is_new(&relay).await?;
|
||||||
self.sync_and_report(&relay, is_new).await;
|
self.sync_and_report(&relay, is_new).await;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
@@ -110,7 +110,7 @@ impl Infra {
|
|||||||
|
|
||||||
for relay in relays {
|
for relay in relays {
|
||||||
if relay.sync_error.trim().is_empty() {
|
if relay.sync_error.trim().is_empty() {
|
||||||
let is_new = relay.synced == 0;
|
let is_new = self.relay_sync_is_new(&relay).await?;
|
||||||
self.sync_and_report(&relay, is_new).await;
|
self.sync_and_report(&relay, is_new).await;
|
||||||
} else {
|
} else {
|
||||||
self.schedule_relay_sync_retry(&relay.id, source).await?;
|
self.schedule_relay_sync_retry(&relay.id, source).await?;
|
||||||
@@ -166,11 +166,20 @@ impl Infra {
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
let is_new = relay.synced == 0;
|
let is_new = self.relay_sync_is_new(&relay).await?;
|
||||||
self.sync_and_report(&relay, is_new).await;
|
self.sync_and_report(&relay, is_new).await;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn relay_sync_is_new(&self, relay: &Relay) -> Result<bool> {
|
||||||
|
if relay.synced == 1 {
|
||||||
|
return Ok(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
let has_completed_sync = self.query.relay_has_completed_sync(&relay.id).await?;
|
||||||
|
Ok(!has_completed_sync)
|
||||||
|
}
|
||||||
|
|
||||||
async fn sync_and_report(&self, relay: &Relay, is_new: bool) {
|
async fn sync_and_report(&self, relay: &Relay, is_new: bool) {
|
||||||
match self.sync_relay(relay, is_new).await {
|
match self.sync_relay(relay, is_new).await {
|
||||||
Ok(()) => {
|
Ok(()) => {
|
||||||
|
|||||||
@@ -194,4 +194,20 @@ impl Query {
|
|||||||
.await?;
|
.await?;
|
||||||
Ok(rows)
|
Ok(rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn relay_has_completed_sync(&self, relay_id: &str) -> Result<bool> {
|
||||||
|
let found = sqlx::query_scalar::<_, i64>(
|
||||||
|
"SELECT 1
|
||||||
|
FROM activity
|
||||||
|
WHERE resource_type = 'relay'
|
||||||
|
AND resource_id = ?
|
||||||
|
AND activity_type = 'complete_relay_sync'
|
||||||
|
LIMIT 1",
|
||||||
|
)
|
||||||
|
.bind(relay_id)
|
||||||
|
.fetch_optional(&self.pool)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(found.is_some())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user