@@ -22,6 +22,8 @@ use std::str;
22
22
use std:: sync:: Arc ;
23
23
24
24
use common_ast:: Dialect ;
25
+ use common_base:: base:: GlobalIORuntime ;
26
+ use common_base:: base:: TrySpawn ;
25
27
use common_config:: Config ;
26
28
use common_exception:: ErrorCode ;
27
29
use common_exception:: Result ;
@@ -88,7 +90,7 @@ impl Settings {
88
90
for global_setting in global_settings {
89
91
let name = global_setting. name ;
90
92
let val = global_setting. value . as_string ( ) ?;
91
- settings. set_settings ( name, val, true ) ?;
93
+ settings. set_settings ( name, val, false ) ?;
92
94
}
93
95
settings
94
96
} ;
@@ -546,12 +548,15 @@ impl Settings {
546
548
setting. user_setting . value = UserSettingValue :: UInt64 ( val) ;
547
549
548
550
if is_global {
549
- let tenant = self . tenant . as_str ( ) ;
550
- let _ = futures:: executor:: block_on (
551
+ let tenant = self . tenant . clone ( ) ;
552
+ let user_setting = setting. user_setting . clone ( ) ;
553
+ let set_handle = GlobalIORuntime :: instance ( ) . spawn ( async move {
551
554
UserApiProvider :: instance ( )
552
- . get_setting_api_client ( tenant) ?
553
- . set_setting ( setting. user_setting . clone ( ) ) ,
554
- ) ?;
555
+ . get_setting_api_client ( & tenant) ?
556
+ . set_setting ( user_setting)
557
+ . await
558
+ } ) ;
559
+ let _ = futures:: executor:: block_on ( set_handle) . unwrap ( ) ?;
555
560
setting. level = ScopeLevel :: Global ;
556
561
}
557
562
@@ -566,11 +571,15 @@ impl Settings {
566
571
setting. user_setting . value = UserSettingValue :: String ( val) ;
567
572
568
573
if is_global {
569
- let _ = futures:: executor:: block_on (
574
+ let tenant = self . tenant . clone ( ) ;
575
+ let user_setting = setting. user_setting . clone ( ) ;
576
+ let set_handle = GlobalIORuntime :: instance ( ) . spawn ( async move {
570
577
UserApiProvider :: instance ( )
571
- . get_setting_api_client ( & self . tenant ) ?
572
- . set_setting ( setting. user_setting . clone ( ) ) ,
573
- ) ?;
578
+ . get_setting_api_client ( & tenant) ?
579
+ . set_setting ( user_setting)
580
+ . await
581
+ } ) ;
582
+ let _ = futures:: executor:: block_on ( set_handle) . unwrap ( ) ?;
574
583
setting. level = ScopeLevel :: Global ;
575
584
}
576
585
0 commit comments