File tree Expand file tree Collapse file tree 3 files changed +24
-4
lines changed Expand file tree Collapse file tree 3 files changed +24
-4
lines changed Original file line number Diff line number Diff line change @@ -42,3 +42,14 @@ def post_read(request):
4242 if rv != ReturnCode .declined :
4343 return rv
4444 return rv
45+
46+
47+ async def post_read_async (request ):
48+ rv = ReturnCode .declined
49+ for mod in _modules :
50+ rv = await mod .post_read_async (request )
51+ if rv in (ReturnCode .again ,):
52+ raise ValueError ('post_read_async cannot return NGX_AGAIN' )
53+ if rv != ReturnCode .declined :
54+ return rv
55+ return rv
Original file line number Diff line number Diff line change 33from . import log
44from .._nginx import run_phases
55from ..module import BaseModule , ReturnCode
6+ from ..hooks import post_read_async
67
78
89class HTTPModule (BaseModule ):
@@ -14,15 +15,20 @@ def init_process(self):
1415
1516 def post_read (self , request ):
1617 if request ._started ():
18+ log .debug ('post_read end' )
1719 return request ._result ()
1820 else :
21+ log .debug ('post_read start' )
1922 return request ._start (self .loop .create_task (self ._handle (request )))
2023
2124 async def _handle (self , request ):
2225 try :
23- log .info ('Handling request...' )
24- await asyncio .sleep (1 )
25- log .info ('Done' )
26- return ReturnCode .declined
26+ return await post_read_async (request )
2727 finally :
2828 self .loop .call_soon (run_phases , request )
29+
30+ async def post_read_async (self , request ):
31+ log .info ('Delaying request for 1 second...' )
32+ await asyncio .sleep (1 )
33+ log .info ('Now continue with the request' )
34+ return ReturnCode .declined
Original file line number Diff line number Diff line change @@ -20,6 +20,9 @@ def exit_process(self):
2020 def post_read (self , request ):
2121 return ReturnCode .declined
2222
23+ async def post_read_async (self , request ):
24+ return ReturnCode .declined
25+
2326
2427def load_modules ():
2528 log .debug ('loading modules' )
You can’t perform that action at this time.
0 commit comments