1

我有一个名为 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是从 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>>
4

0 回答 0