由于这是您应使用的async
功能,但要使用asyncio
的sleep
。
我正在本地运行开发服务器
python manage.py runserver 8000
然后,我运行一个脚本,在下面使用消费者”>
from channels.generic.websocket import AsyncJsonWebsocketConsumer class MyConsumer(AsyncJsonWebsocketConsumer): async def connect(self): import time time.sleep(99999999) await self.accept()
一切正常,消费者如预期的那样睡了很长时间。但是,我无法从浏览器访问http://127.0.0.1:8000/。
在现实生活中,问题更大,因为使用者需要向同一服务器发出HTTP请求-并最终陷入僵局。
这是预期的行为吗?运行缓慢的使用者时,如何允许呼叫服务器?
我正在本地运行开发服务器python manage.py runserver 8000,然后运行一个脚本,该脚本消耗了channels.generic.websocket import AsyncJsonWebsocketConsumer ...]下面的使用者,] >>
由于这是您应使用的async
功能,但要使用asyncio
的sleep
。
import asyncio from channels.generic.websocket import AsyncJsonWebsocketConsumer class MyConsumer(AsyncJsonWebsocketConsumer): async def connect(self): await asyncio.sleep(99999999) await self.accept()
如果使用
time.sleep
,则将sleep
整个Python线程。
这也适用于发出上游HTTP请求时,您需要使用asyncio
http库而不是同步库。 (基本上,您应该等待任何可能需要的时间)
由于这是您应使用的async
功能,但要使用asyncio
的sleep
。