Код: Выделить всё
class Consumer:
... __init__() and stuff ...
async def run(self):
... Connection stuff ...
await self._queue.consume(self.handle_message)
# This part I don't understand
await self._loop.create_future()
def close(self):
self._channel.close()
self._loop.stop()
# Main part
loop = asyncio.get_event_loop()
consumer = Consumer(loop)
try:
loop.create_task(consumer.run())
loop.run_forever()
except KeyboardInterrupt:
consumer.close()
Код: Выделить всё
Task was destroyed but it is pending!
task:
< /code>
Как ни странно, когда я храню будущее в атрибуте экземпляра, предупреждение исчезает: < /p>
self._exit = self._loop.create_future()
await self._exit
< /code>
Чтобы сделать его чище, я также отменяю будущее после выхода, но, похоже, это ничего не меняет: < /p>
def close(self):
self._exit.cancel()
self._channel.close()
self._loop.stop()
Подробнее здесь: https://stackoverflow.com/questions/719 ... h-aio-pika