У меня есть приложение на Python, которое должно поддерживать соединение с клиентом, но также должно запускать цикл. Я делаю это с помощью asyncio и фреймворка под названием quart. Но когда я подключаюсь к приложению, время дельта цикла постоянно увеличивается. Я не знаю, что вызывает это.
Это происходит только в том случае, если в данный момент подключен клиент, иначе дельта стабильна.
@app.websocket('/ws')
async def handle():
global running
while True:
if(running == 0):
asyncio.ensure_future(mainloop())
rData = json.loads(await websocket.receive())
before = int(time.time() * 1000)
async def mainloop():
running = 1
while True:
start = time.time()
now = int(time.time() * 1000)
delta = now - before
delta = delta * 0.001
before = now
await asyncio.sleep(max(1./20 - (time.time() - start), 0))
for IDs in clientIds:
PlayerJsonData = json.dumps(IDs.data)
if(IDs.ws in connected):
await IDs.ws.send(PlayerJsonData)
else:
clientIds.remove(IDs)
app.run(host='localhost', port=os.environ.get('PORT', '80'))
Как сделать так, чтобы дельта была постоянной, даже если клиент в данный момент подключен?