Quando permetto asyncio debug in Python 3.5, vengono visualizzati messaggi come questo quasi ogni secondo:Asyncio in spam python3.5 con INFO
INFO:asyncio:poll 999.470 ms took 1001.159 ms: timeout
INFO:asyncio:poll 999.264 ms took 1001.092 ms: timeout
INFO:asyncio:poll 999.454 ms took 1001.059 ms: timeout
Ecco un codice minimo che riproduce questo problema:
import asyncio
import logging
logging.basicConfig(level=logging.DEBUG)
loop = asyncio.get_event_loop()
loop.set_debug(True)
async def f(delay):
for i in range(10):
await asyncio.sleep(delay)
loop.run_until_complete(f(0.5))
# (nothing printed)
loop.run_until_complete(f(1))
# INFO:asyncio:poll 999.470 ms took 1001.159 ms: timeout
# INFO:asyncio:poll 999.264 ms took 1001.092 ms: timeout
# INFO:asyncio:poll 999.454 ms took 1001.059 ms: timeout
# ...
loop.run_until_complete(f(2))
# INFO:asyncio:poll 1999.427 ms took 2001.112 ms: timeout
# INFO:asyncio:poll 1999.393 ms took 2001.088 ms: timeout
# INFO:asyncio:poll 1999.709 ms took 2001.758 ms: timeout
# ...
Questo non stampa messaggi se sleep
ritardo è minore di 1 secondo, ma non se si tratta di> = 1.
è che il comportamento previsto? Come posso evitare tali messaggi?
Ho trovato questo problema quando si lavora con Muffin framework.
sembra che questo problema è radicato nella 'lavoratore gunicorn aiohttp' del framework web: https://github.com/KeepSafe/aiohttp/blob/master/aiohttp/worker.py#L97 - chiama asyncio.sleep (1.0) che porta a questo messaggio quando il server non è occupato. – MarSoft