@@ -66,6 +66,8 @@ pub trait QueueData: Send + Sync + 'static {
66
66
67
67
fn remove_error_message ( key : Option < Self :: Key > ) -> ErrorCode ;
68
68
69
+ fn lock_ttl ( & self ) -> Duration ;
70
+
69
71
fn timeout ( & self ) -> Duration ;
70
72
71
73
fn need_acquire_to_queue ( & self ) -> bool ;
@@ -158,7 +160,7 @@ impl<Data: QueueData> QueueManager<Data> {
158
160
data. get_lock_key ( ) ,
159
161
self . permits as u64 ,
160
162
data. get_key ( ) , // ID of this acquirer
161
- Duration :: from_secs ( 3 ) ,
163
+ data . lock_ttl ( ) ,
162
164
) ;
163
165
164
166
let future = AcquireQueueFuture :: create (
@@ -333,6 +335,7 @@ pub struct QueryEntry {
333
335
pub sql : String ,
334
336
pub user_info : UserInfo ,
335
337
pub timeout : Duration ,
338
+ pub lock_ttl : Duration ,
336
339
pub need_acquire_to_queue : bool ,
337
340
}
338
341
@@ -354,6 +357,7 @@ impl QueryEntry {
354
357
0 => Duration :: from_secs ( 60 * 60 * 24 * 365 * 35 ) ,
355
358
timeout => Duration :: from_secs ( timeout) ,
356
359
} ,
360
+ lock_ttl : Duration :: from_secs ( settings. get_statement_queue_ttl_in_seconds ( ) ?) ,
357
361
} )
358
362
}
359
363
@@ -481,6 +485,10 @@ impl QueueData for QueryEntry {
481
485
}
482
486
}
483
487
488
+ fn lock_ttl ( & self ) -> Duration {
489
+ self . lock_ttl
490
+ }
491
+
484
492
fn timeout ( & self ) -> Duration {
485
493
self . timeout
486
494
}
0 commit comments