Задача была уничтожена, но ожидается ошибка - PullRequest
0 голосов
/ 20 марта 2020

У меня есть класс engine.py, который возвращает пул соединений.

class PIIEngine:

async def engine(self):
        self.pool = await asyncpg.create_pool(
          config.pg_gdpr_contact_db_url)

        return self.pool

Затем у меня есть другой модуль с именем model.py, который имеет

def get_contacts(id):
    async def get(loop):
        conn = await engine.engine()
        async with conn.acquire() as txn:
           async with txn.transaction():
              stmt = """
                SELECT *
                FROM
                    <TABLE>
                WHERE
                    id = $1
            """

              contact =  await txn.fetchrow(stmt, id)

              if contact:
                  return dict(contact)
              else:
                  return None
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    asyncio.ensure_future(get(loop))
    loop.close()

, функция get_contacts is вызывается из swagger api, но когда я слишком часто нажимаю на это api, я получаю

ERROR    - asyncio - Task was destroyed but it is pending!
task: <Task pending coro=<get_contacts.<locals>.get() running at 
/usr/src/models.py:2>>
...