File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ import asyncio
2
+ import aioredis
3
+ import time
4
+
5
+ from aiohttp import web
6
+ from aiohttp_session import setup , get_session
7
+ from aiohttp_session .redis_storage import RedisStorage
8
+
9
+
10
+ async def handler (request ):
11
+ session = await get_session (request )
12
+ last_visit = session ['last_visit' ] if 'last_visit' in session else None
13
+ session ['last_visit' ] = time .time ()
14
+ text = 'Last visited: {}' .format (last_visit )
15
+ return web .Response (text = text )
16
+
17
+
18
+ async def make_redis_pool ():
19
+ redis_address = ('127.0.0.1' , '6379' )
20
+ return await aioredis .create_pool (
21
+ redis_address ,
22
+ create_connection_timeout = 1 ,
23
+ )
24
+
25
+
26
+ def make_app ():
27
+ loop = asyncio .get_event_loop ()
28
+ redis_pool = loop .run_until_complete (make_redis_pool ())
29
+ storage = RedisStorage (redis_pool )
30
+
31
+ async def dispose_redis_pool (app ):
32
+ redis_pool .close ()
33
+ await redis_pool .wait_closed ()
34
+
35
+ app = web .Application ()
36
+ setup (app , storage )
37
+ app .on_cleanup .append (dispose_redis_pool )
38
+ app .router .add_get ('/' , handler )
39
+ return app
40
+
41
+
42
+ web .run_app (make_app ())
You can’t perform that action at this time.
0 commit comments