Как заставить SocketIO/aiohttp печатать на экране каждые X секунд
Сервер SocketIO, созданный с помощью aiohttp, добавляет новую строку в глобальный запрос zoo
при получении addAnimal
сообщение от своих клиентов socketio.
Можно ли также распечатать zoo
каждые 5 секунд? Мой текущий код ниже, кажется, не печатать zoo
каждые 5 секунд.
import time
from aiohttp import web
import socketio
zoo = []
sio = socketio.AsyncServer()
app = web.Application()
sio.attach(app)
@sio.on('addAnimal')
async def onAddAnimal(sid, animal):
zoo.append(animal)
print('Zoo: ', zoo)
if __name__ == '__main__':
web.run_app(app)
while True:
print('Zoo:', zoo)
time.delay(5)
1 ответ
Попробуй это.
from aiohttp import web
import socketio
zoo = []
sio = socketio.AsyncServer()
app = web.Application()
sio.attach(app)
async def print_zoo(interval: int):
while True:
print(zoo)
await asyncio.sleep(interval)
@sio.on('addAnimal')
async def onAddAnimal(sid, animal):
zoo.append(animal)
print('Zoo: ', zoo)
if __name__ == '__main__':
asyncio.ensure_future(print_zoo(5))
web.run_app(app)