55//! cargo run --bin monitor
66
77use anyhow:: Result ;
8- use crates_io:: tasks:: spawn_blocking;
98use crates_io:: worker:: jobs;
109use crates_io:: { admin:: on_call, db, schema:: * } ;
1110use crates_io_env_vars:: { var, var_parsed} ;
@@ -67,7 +66,7 @@ async fn check_failing_background_jobs(conn: &mut AsyncPgConnection) -> Result<(
6766 }
6867 } ;
6968
70- spawn_blocking ( move || log_and_trigger_event ( event) ) . await ?;
69+ log_and_trigger_event ( event) . await ?;
7170
7271 Ok ( ( ) )
7372}
@@ -94,21 +93,17 @@ async fn check_stalled_update_downloads(conn: &mut AsyncPgConnection) -> Result<
9493 let minutes = Utc :: now ( ) . signed_duration_since ( start_time) . num_minutes ( ) ;
9594
9695 if minutes > max_job_time {
97- return spawn_blocking ( move || {
98- log_and_trigger_event ( on_call:: Event :: Trigger {
99- incident_key : Some ( EVENT_KEY . into ( ) ) ,
100- description : format ! ( "update_downloads job running for {minutes} minutes" ) ,
101- } )
96+ return log_and_trigger_event ( on_call:: Event :: Trigger {
97+ incident_key : Some ( EVENT_KEY . into ( ) ) ,
98+ description : format ! ( "update_downloads job running for {minutes} minutes" ) ,
10299 } )
103100 . await ;
104101 }
105102 } ;
106103
107- spawn_blocking ( move || {
108- log_and_trigger_event ( on_call:: Event :: Resolve {
109- incident_key : EVENT_KEY . into ( ) ,
110- description : Some ( "No stalled update_downloads job" . into ( ) ) ,
111- } )
104+ log_and_trigger_event ( on_call:: Event :: Resolve {
105+ incident_key : EVENT_KEY . into ( ) ,
106+ description : Some ( "No stalled update_downloads job" . into ( ) ) ,
112107 } )
113108 . await
114109}
@@ -152,11 +147,11 @@ async fn check_spam_attack(conn: &mut AsyncPgConnection) -> Result<()> {
152147 }
153148 } ;
154149
155- spawn_blocking ( move || log_and_trigger_event ( event) ) . await ?;
150+ log_and_trigger_event ( event) . await ?;
156151 Ok ( ( ) )
157152}
158153
159- fn log_and_trigger_event ( event : on_call:: Event ) -> Result < ( ) > {
154+ async fn log_and_trigger_event ( event : on_call:: Event ) -> Result < ( ) > {
160155 match event {
161156 on_call:: Event :: Trigger {
162157 ref description, ..
@@ -167,5 +162,5 @@ fn log_and_trigger_event(event: on_call::Event) -> Result<()> {
167162 } => println ! ( "{description}" ) ,
168163 _ => { } // noop
169164 }
170- event. send ( )
165+ event. send ( ) . await
171166}
0 commit comments