4
4
"AsyncApiExecutor" ,
5
5
"BatchApiExecutor" ,
6
6
"TransactionApiExecutor" ,
7
+ "QueueTimeApiExecutor" ,
7
8
]
8
9
9
10
from collections import OrderedDict
32
33
"AsyncApiExecutor" ,
33
34
"BatchApiExecutor" ,
34
35
"TransactionApiExecutor" ,
36
+ "QueueTimeApiExecutor" ,
35
37
]
36
38
37
39
T = TypeVar ("T" )
@@ -430,7 +432,6 @@ def abort(self) -> bool:
430
432
raise TransactionAbortError (resp , request )
431
433
432
434
433
-
434
435
class QueueTimeApiExecutor :
435
436
"""API executor that handles queue time.
436
437
@@ -446,17 +447,22 @@ def __init__(self, connection: Connection) -> None:
446
447
def context (self ) -> str :
447
448
return "queue-time"
448
449
449
- def execute (self , request : Request , response_handler : Callable [[Response ], T ], max_queue_time_seconds : int ) -> T :
450
+ def execute (
451
+ self ,
452
+ request : Request ,
453
+ response_handler : Callable [[Response ], T ],
454
+ max_queue_time_seconds : int ,
455
+ ) -> T :
450
456
"""Execute an API request and return the result.
451
457
452
458
:param request: HTTP request.
453
459
:type request: arango.request.Request
454
460
:param response_handler: HTTP response handler.
455
461
:type response_handler: callable
456
462
:return: API execution result.
457
- """
463
+ """
458
464
request .headers ["x-arango-max-queue-time-seconds" ] = max_queue_time_seconds
459
465
resp = self ._conn .send_request (request )
460
-
466
+
461
467
queue_time_seconds = resp .headers ["x-arango-queue-time-seconds" ]
462
468
return response_handler (resp , queue_time_seconds )
0 commit comments