@@ -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