Ошибка asyncio Task was destroyed but it is pending!

Помогите разобраться в чем ошибка. Вот исполняемый код:

import pandas as pd
import sqlalchemy
from binance.client import Client
from binance import BinanceSocketManager
import asyncio

client = Client(api_key, api_secret)

async def main():

    bsm = BinanceSocketManager(client)
    socket = bsm.trade_socket('BTCUSDT')
    await socket.__aenter__()
    msg = await socket.recv()
    return print(msg)

loop = asyncio.get_event_loop()
forecast = loop.run_until_complete(main())
loop.close()

Ошибка: Task was destroyed but it is pending! task: <Task pending name='Task-9' coro=<WebSocketCommonProtocol.recv() done, defined at /Users/v/Downloads/soft/anaconda3/lib/python3.9/site-packages/websockets/legacy/protocol.py:486> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fd45d952a90>()]> cb=[_release_waiter(()]>)() at /Users/v/Downloads/soft/anaconda3/lib/python3.9/asyncio/tasks.py:416]>


Ответы (1 шт):

Автор решения: Sam Knight
async def main():
   client = await AsyncClient.create()
   bm = BinanceSocketManager(client)
   ts = bm.trade_socket('BTCUSDT')
   async with ts as tscm:
      while True:
          msg = await tscm.recv()
          frame = createframe(msg)
          frame.to_sql('BTCUSDT', engine, if_exists='append', index=False)
          print(createframe(msg))

     await client.close_connection()

if __name__ == "__main__":

 loop = asyncio.get_event_loop()
 loop.run_until_complete(main())
→ Ссылка