@@ -60,6 +60,12 @@ struct Args {
60
60
#[ clap( default_value = "5" , long) ]
61
61
concurrent : usize ,
62
62
63
+ #[ clap( default_value = "2" , long) ]
64
+ threads : usize ,
65
+
66
+ #[ clap( default_value = "1024*1024" , long) ]
67
+ thread_stack_size : usize ,
68
+
63
69
#[ clap( default_value = "mydomain.io" , long) ]
64
70
tls_host : String ,
65
71
@@ -97,24 +103,7 @@ fn rcgen(tls_host: &String) {
97
103
}
98
104
}
99
105
100
- #[ tokio:: main]
101
- async fn main ( ) -> anyhow:: Result < ( ) > {
102
- let args: Args = Args :: parse ( ) ;
103
- if args. log . is_empty ( ) {
104
- tracing_subscriber:: fmt:: init ( ) ;
105
- } else {
106
- let file_appender = tracing_appender:: rolling:: daily ( "./" , args. log . as_str ( ) ) ;
107
- //let (non_blocking_appender, _guard) = tracing_appender::non_blocking(file_appender);
108
- tracing_subscriber:: fmt ( ) . with_writer ( file_appender) . init ( ) ;
109
- tokio:: spawn ( utils:: clean_rotate_logs ( format ! ( "./{}" , args. log. as_str( ) ) ) ) ;
110
- }
111
- tracing:: info!( "{args:?}" ) ;
112
-
113
- if args. rcgen {
114
- rcgen ( & args. tls_host ) ;
115
- return Ok ( ( ) ) ;
116
- }
117
-
106
+ async fn service_main ( args : & Args ) -> anyhow:: Result < ( ) > {
118
107
let recorder = utils:: MetricsLogRecorder :: new ( Duration :: from_secs ( 10 ) ) ;
119
108
metrics:: set_boxed_recorder ( Box :: new ( recorder) ) . unwrap ( ) ;
120
109
@@ -192,3 +181,30 @@ async fn main() -> anyhow::Result<()> {
192
181
}
193
182
Ok ( ( ) )
194
183
}
184
+
185
+ fn main ( ) {
186
+ let args: Args = Args :: parse ( ) ;
187
+ if args. log . is_empty ( ) {
188
+ tracing_subscriber:: fmt:: init ( ) ;
189
+ } else {
190
+ let file_appender = tracing_appender:: rolling:: daily ( "./" , args. log . as_str ( ) ) ;
191
+ //let (non_blocking_appender, _guard) = tracing_appender::non_blocking(file_appender);
192
+ tracing_subscriber:: fmt ( ) . with_writer ( file_appender) . init ( ) ;
193
+ tokio:: spawn ( utils:: clean_rotate_logs ( format ! ( "./{}" , args. log. as_str( ) ) ) ) ;
194
+ }
195
+ tracing:: info!( "{args:?}" ) ;
196
+
197
+ if args. rcgen {
198
+ rcgen ( & args. tls_host ) ;
199
+ return ;
200
+ }
201
+ tokio:: runtime:: Builder :: new_multi_thread ( )
202
+ . worker_threads ( args. threads )
203
+ . enable_all ( )
204
+ . thread_stack_size ( args. thread_stack_size )
205
+ . build ( )
206
+ . unwrap ( )
207
+ . block_on ( async {
208
+ let _ = service_main ( & args) . await ;
209
+ } ) ;
210
+ }
0 commit comments