@@ -74,6 +74,40 @@ pub async fn non_blocking(
7474 . map ( |_| ( ) ) ,
7575 ) ?;
7676
77+ let stage = process_settings;
78+ pool. spawn (
79+ repeat_every_s (
80+ stage. every . as_secs ( ) as u32 ,
81+ {
82+ let p = progress. clone ( ) ;
83+ move || p. add_child ( "Reporting Timer" )
84+ } ,
85+ deadline,
86+ stage. at_most ,
87+ {
88+ let progress = progress. clone ( ) ;
89+ let db = db. clone ( ) ;
90+ let assets_dir = assets_dir. clone ( ) ;
91+ let pool = pool. clone ( ) ;
92+ let tokio = tokio. clone ( ) ;
93+ move || {
94+ stage:: processing:: process (
95+ db. clone ( ) ,
96+ progress. add_child ( "Process Crate Versions" ) ,
97+ io_bound_processors,
98+ cpu_bound_processors,
99+ progress. add_child ( "Downloads" ) ,
100+ tokio. clone ( ) ,
101+ pool. clone ( ) ,
102+ assets_dir. clone ( ) ,
103+ startup_time,
104+ )
105+ }
106+ } ,
107+ )
108+ . map ( |_| ( ) ) ,
109+ ) ?;
110+
77111 let stage = report_settings;
78112 repeat_every_s (
79113 stage. run . every . as_secs ( ) as u32 ,
@@ -82,54 +116,23 @@ pub async fn non_blocking(
82116 move || p. add_child ( "Reporting Timer" )
83117 } ,
84118 deadline,
85- stage
86- . run
87- . at_most
88- . and_then ( |at_most| process_settings. at_most . map ( |am| at_most. max ( am) ) )
89- . or_else ( || process_settings. at_most ) ,
119+ stage. run . at_most ,
90120 {
91- let mut process_run_count = 0 ;
92- let mut report_run_count = 0 ;
93- let process_max_runs = process_settings. at_most . unwrap_or ( std:: usize:: MAX ) ;
94- let report_max_runs = stage. run . at_most . unwrap_or ( std:: usize:: MAX ) ;
121+ let progress = progress. clone ( ) ;
122+ let db = db. clone ( ) ;
123+ let assets_dir = assets_dir. clone ( ) ;
124+ let pool = pool. clone ( ) ;
125+ let glob = stage. glob . clone ( ) ;
95126 move || {
96- let progress = progress. clone ( ) ;
97- let db = db. clone ( ) ;
98- let assets_dir = assets_dir. clone ( ) ;
99- let pool = pool. clone ( ) ;
100- let glob = stage. glob . clone ( ) ;
101- let tokio = tokio. clone ( ) ;
102- async move {
103- if process_run_count < process_max_runs {
104- process_run_count += 1 ;
105- stage:: processing:: process (
106- db. clone ( ) ,
107- progress. add_child ( "Process Crate Versions" ) ,
108- io_bound_processors,
109- cpu_bound_processors,
110- progress. add_child ( "Downloads" ) ,
111- tokio. clone ( ) ,
112- pool. clone ( ) ,
113- assets_dir. clone ( ) ,
114- startup_time,
115- )
116- . await ?;
117- }
118- if report_run_count < report_max_runs {
119- report_run_count += 1 ;
120- stage:: report:: generate (
121- db. clone ( ) ,
122- progress. add_child ( "Reports" ) ,
123- assets_dir. clone ( ) ,
124- glob. clone ( ) ,
125- deadline,
126- cpu_o_bound_processors,
127- pool. clone ( ) ,
128- )
129- . await ?;
130- }
131- Ok ( ( ) )
132- }
127+ stage:: report:: generate (
128+ db. clone ( ) ,
129+ progress. add_child ( "Reports" ) ,
130+ assets_dir. clone ( ) ,
131+ glob. clone ( ) ,
132+ deadline,
133+ cpu_o_bound_processors,
134+ pool. clone ( ) ,
135+ )
133136 }
134137 } ,
135138 )
0 commit comments