Skip to content
This repository was archived by the owner on Oct 21, 2025. It is now read-only.

Commit 34fa4b4

Browse files
committed
advanced technology
1 parent 0068593 commit 34fa4b4

File tree

2 files changed

+40
-10
lines changed

2 files changed

+40
-10
lines changed

src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ async fn main() {
142142
loop {
143143
tokio::time::sleep(std::time::Duration::from_secs(5)).await;
144144

145-
state.telemetry.process().await;
145+
state.telemetry.process().await.unwrap_or_default();
146146
}
147147
});
148148
}

src/telemetry.rs

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ impl TelemetryLogger {
173173
Ok(result)
174174
}
175175

176-
pub async fn process(&self) {
176+
pub async fn process(&self) -> Result<(), sqlx::Error> {
177177
let mut processing = self.processing.lock().await;
178178
let length = processing.len();
179179

@@ -182,7 +182,7 @@ impl TelemetryLogger {
182182
.collect::<Vec<_>>();
183183

184184
if telemetry.is_empty() {
185-
return;
185+
return Ok(());
186186
}
187187

188188
let ips = self
@@ -211,7 +211,7 @@ impl TelemetryLogger {
211211
.collect::<std::collections::HashSet<_>>();
212212

213213
for id in panels {
214-
sqlx::query!(
214+
match sqlx::query!(
215215
"
216216
INSERT INTO telemetry_panels (id)
217217
VALUES ($1)
@@ -223,12 +223,26 @@ impl TelemetryLogger {
223223
id
224224
)
225225
.execute(self.database.write())
226-
.await
227-
.unwrap();
226+
.await {
227+
Ok(_) => {},
228+
Err(e) => {
229+
crate::logger::log(
230+
crate::logger::LoggerLevel::Error,
231+
format!("Failed to insert telemetry panel: {}", e),
232+
);
233+
234+
self.processing
235+
.lock()
236+
.await
237+
.append(&mut telemetry);
238+
239+
return Err(e);
240+
}
241+
}
228242
}
229243

230-
for t in telemetry {
231-
sqlx::query!(
244+
for t in telemetry.iter() {
245+
match sqlx::query!(
232246
"
233247
INSERT INTO telemetry_data (panel_id, telemetry_version, ip, continent, country, data, created)
234248
VALUES ($1, $2, $3, $4, $5, $6, $7)
@@ -243,8 +257,24 @@ impl TelemetryLogger {
243257
t.created
244258
)
245259
.execute(self.database.write())
246-
.await
247-
.unwrap();
260+
.await {
261+
Ok(_) => {},
262+
Err(e) => {
263+
crate::logger::log(
264+
crate::logger::LoggerLevel::Error,
265+
format!("Failed to insert telemetry data: {}", e),
266+
);
267+
268+
self.processing
269+
.lock()
270+
.await
271+
.append(&mut telemetry);
272+
273+
return Err(e);
274+
}
275+
}
248276
}
277+
278+
Ok(())
249279
}
250280
}

0 commit comments

Comments
 (0)