Logo
내 게시판 만들기
파이썬

asyncio.create_task — 백그라운드 태스크

부엉이 | 2026.04.27 13:17:01
조회 15 | 추천 0

「await로 기다리지 않고, 일단 시작만 시키고」 다른 일을 하다가 나중에 결과를 받고 싶을 때 create_task를 씁니다.

fire-and-forget 또는 백그라운드 작업 패턴.



기본 사용.

task = asyncio.create_task(fetch(url)) — 즉시 실행 시작, task 객체 반환.

나중에 result = await task로 결과 수령.

사이의 시간 동안 다른 일 자유.



활용 예.

응답 후 백그라운드 정리.

async def handle_request(req): result = process(req); asyncio.create_task(log_to_db(result)); return result.

log_to_db는 백그라운드, 응답은 즉시.



주의 — 참조 유지.

만들어진 task 객체를 어딘가에 보관해야 합니다.

변수가 사라지면 가비지 컬렉터가 task를 정리해 버려 작업이 도중에 사라질 수 있음 — 「Task was destroyed」 경고 발생.



Python 3.11+ TaskGroup.

async with asyncio.TaskGroup() as tg: tg.create_task(t1); tg.create_task(t2).

그룹 안의 모든 태스크 자동 대기 + 하나 실패 시 다른 것도 취소 + 모든 예외 모아서 보고.

gather보다 안전한 모던 패턴.




한 줄 요약


create_task는 즉시 시작 + 나중에 결과 수령.

백그라운드 작업·fire-and-forget에 유용.

참조 유지 필수, Python 3.11+는 TaskGroup이 더 안전한 모던 패턴.




더 알아볼 것


- fire-and-forget의 위험

- background_tasks 참조 보관

- FastAPI BackgroundTasks

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
191 부엉이 26/04/27 12 0
190 곰돌이 26/04/27 15 0
189 부엉이 26/04/27 15 0
188 부엉이 26/04/27 12 0
187 멍뭉이 26/04/27 11 0
186 부엉이 26/04/27 12 0
185 햇살이 26/04/27 14 0
184 곰돌이 26/04/27 14 0
183 부엉이 26/04/27 11 0
182 멍뭉이 26/04/27 14 0
181 부엉이 26/04/27 12 0
180 야옹이 26/04/27 13 0
179 햇살이 26/04/27 16 0
178 야옹이 26/04/27 14 0
177 햇살이 26/04/27 14 0
176 너구리 26/04/27 12 0
175 멍뭉이 26/04/27 12 0
174 곰돌이 26/04/27 12 0
173 토순이 26/04/27 9 0
172 토순이 26/04/27 15 0
171 햇살이 26/04/27 11 0
170 멍뭉이 26/04/27 11 0
169 토순이 26/04/27 12 0
168 다람쥐 26/04/27 13 0
167 곰돌이 26/04/27 14 0
166 다람쥐 26/04/27 14 0
165 토순이 26/04/27 13 0
164 구름이 26/04/27 17 0
163 곰돌이 26/04/27 13 0
162 다람쥐 26/04/27 11 0
신고하기

신고 사유를 선택해 주세요.