sonack
2017-01-03 19:19:40 +08:00
我现在这样实现的。。。
用 python 的 aiohttp
import asyncio
from aiohttp import web
test = False
async def index(request):
global test
print('index test=',test)
test = True
print('index changed=',test)
return web.Response(body=b'<h1>Index</h1>',content_type='text/html')
async def hello(request):
print("start");
while True:
await asyncio.sleep(0.5)
print('test = ' , test)
if test:
break
print("end");
text = '<h1>Hello, %s!</h1>' % request.match_info['name']
return web.Response(body=text.encode('utf-8'),content_type='text/html')
async def init(loop):
app = web.Application(loop=loop)
app.router.add_route('GET', '/', index)
app.router.add_route('GET', '/hello/{name}', hello)
srv = await loop.create_server(app.make_handler(), '127.0.0.1', 8000)
print('Server started at http://127.0.0.1:8000...')
return srv
loop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))
loop.run_forever()
访问 hello 不会立即返回。除非另外一个访问了 index 。。。。
不知道这样做有没有什么问题