Async/await는 Python의 비동기 프로그래밍을 위한 편리한 구문을 제공합니다. 그러나 완료를 기다리지 않고 비동기 작업을 시작하려는 상황이 있습니다. 이를 종종 "실행 후 잊어버리기"라고 합니다.
Python은 백그라운드에서 실행될 작업을 생성할 수 있는 asyncio.Task를 제공합니다. asyncio.Task를 사용하면 스크립트에 다음 코드를 추가하여 "실행 후 잊어버리기"를 달성할 수 있습니다.
import asyncio async def async_foo(): # Do some asynchronous stuff here # Create a task for async_foo() asyncio.ensure_future(async_foo())
이렇게 하면 메인 스레드를 차단하지 않고 비동기적으로 실행되는 async_foo()에 대한 작업이 생성됩니다.
모든 작업이 완료되기 전에 스크립트가 완료되면 다음 코드를 사용하여 모든 보류 작업을 기다릴 수 있습니다.
pending_tasks = asyncio.Task.all_tasks() loop.run_until_complete(asyncio.gather(*pending_tasks))
이렇게 하면 모든 작업이 스크립트가 종료되기 전에 완료되어 경고나 오류가 발생하지 않도록 합니다.
어떤 경우에는 작업이 완료될 때까지 기다리고 싶지 않을 수도 있습니다. 다음 코드를 사용하여 취소할 수 있습니다.
for task in pending_tasks: task.cancel() with suppress(asyncio.CancelledError): loop.run_until_complete(task)
이렇게 하면 작업이 취소되고 취소로 인해 발생할 수 있는 모든 오류가 억제됩니다.
위 내용은 Python에서 Async/Await를 사용하여 'Fire and Forget'을 어떻게 달성할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!