Celery의 빛과 그림자

Minyoung Jeong
Minyoung JeongDeveloper at the beatpacking company
Celery의 빛과 그림자
PYCON KOREA 2015
정민영
THE BEATPACKING COMPANY
발표자
• 정민영
• 비트패킹컴퍼니 CTO
• PyconKR 2014/Deview 2014 ‘제약을 넘어: Gevent’
발표 (Deview 2014 Top 10)
• AWSKRUG Founder / AWS Community Hero
이런 분들을 위해 준비했어요!
• 비동기 처리를 해야되긴 한다던데… 뭐가 뭔지 모르겠던 분!
• Celery가 뭔가 좋은거 같긴한데…써도 되나 의심스러우셨던
분들!
• Celery를 쓰고 있는데 뭔가 작동이 이상해서 고민이셨던 분
들!
Celery?
Distributed
Task
Queue
혹은
(종합적인)비동기 처리기
비동기 처리기?
비동기 처리기는 왜 필요한걸까?
고갱님 어떤 서비스
진지하게	 가입을	 해볼까?
이메일,	 이름,	 ..	 좋아	 가입!
비동기 처리기는 왜 필요한걸까?
어떤 서비스
진지하게	 가입을	 해볼까?
이메일,	 이름,	 ..	 좋아	 가입!
에..	 고객님	 프로필	 사진을	 
업로드하고..	  크기도	  적당히	 
3개쯤	 준비해두고..
고갱님
비동기 처리기는 왜 필요한걸까?
어떤 서비스
진지하게	 가입을	 해볼까?
이메일,	 이름,	 ..	 좋아	 가입!
에..	 고객님	 프로필	 사진을	 
업로드하고..	  크기도	  적당히	 
3개쯤	 준비해두고..	 요즘	 유
행이니까	 배경	 블러도	 만들
어	 두고…
고갱님
비동기 처리기는 왜 필요한걸까?
어떤 서비스
진지하게	 가입을	 해볼까?
이메일,	 이름,	 ..	 좋아	 가입!
에..	 고객님	 프로필	 사진을	 
업로드하고..	  크기도	  적당히	 
3개쯤	 준비해두고..	 요즘	 유
행이니까	 배경	 블러도	 만들
어	 두고…	 아	 친구도	 찾아
드려야	 하는데	 까먹을뻔	 했
네	 데헷(*^^*)..
고갱님
비동기 처리기는 왜 필요한걸까?
어떤 서비스
에..	 고객님	 프로필	 사진을	 
업로드하고..	  크기도	  적당히	 
3개쯤	 준비해두고..	 요즘	 유
행이니까	 배경	 블러도	 만들
어	 두고…	 아	 친구도	 찾아
드려야	 하는데	 까먹을뻔	 했
네	 데헷(*^^*)..	 자	 다했다	 
이제	 이메일	 보내드려야지!
비동기 처리기는 왜 필요한걸까?
어떤 서비스
어…어..	 고..고갱님??
비동기 처리기는 왜 필요한걸까?
• 비동기 처리기는 동기적으로 수행하지 않아도 되는 일들을 처
리해 주는 역활을 합니다.
• 즉 결과를 즉시 받을 필요 없거나, 지연하여 처리해야 되는 일
들을 보통 처리합니다.
• 물론 그것이 제대로 처리가 되지 않아도 된다는 이야기는 아
니기 때문에, 별도의 잘 만들어진 처리기가 필요해요!
그런데 왜 꼭
여야 하나요?
근데 왜 꼭 Celery여야 하죠?
• 완전 쉽게 연동할 수 있어요!
• (아마도) 당신이 상상할 수 있는 모든 기능을 제공해요!
• 일단 남들이 제일 많이 써요!
Celery… 너란 채소….
완전 쉽게 연동할 수 있어요!
from
 celery
 import
 Celery

app
 =
 Celery('hello',

 
 
 
 
 
 
 
 
 
 
 
 
 broker='amqp://guest@localhost//')
 
@app.task

def
 add(a,
 b):

 
 
 
 return
 a
 +
 b
완전 쉽게 연동할 수 있어요!
from
 tasks
 import
 add

add.delay(1,
 2)
 
완전 쉽게 연동할 수 있어요!
from
 tasks
 import
 add



r
 =
 add(1,
 2)

r.get(timeout=1)
 
완전 쉽게 연동할 수 있어요!
(아마도) 당신이 상상할 수 있는 모든 기능
(아마도) 당신이 상상할 수 있는 모든 기능
(아마도) 당신이 상상할 수 있는 모든 기능
T.delay(arg,
 kwarg=value)
 
!
T.apply_async((arg,
 ),
 {'kwarg':
 value})
 
!
T.apply_async(countdown=10)
 
!
T.apply_async(eta=now
 +
 timedelta(seconds=10))
 
!
T.apply_async(countdown=60,
 expires=120)
 
!
T.apply_async(expires=now
 +
 timedelta(days=2))
 
(아마도) 당신이 상상할 수 있는 모든 기능
 from celery import chain

# 2 + 2 + 4 + 8
 res = chain(add.s(2, 2), add.s(4), add.s(8))()
 res.get()
16
(아마도) 당신이 상상할 수 있는 모든 기능
 from celery import chain
!
# 2 + 2 + 4 + 8
 res = chain(add.s(2, 2), add.s(4), add.s(8))()
 res.get()
16
!
 (add.s(2, 2) | add.s(4) | add.s(8))().get()
16
(아마도) 당신이 상상할 수 있는 모든 기능
new_user_workflow = (create_user.s() | group(
import_contacts.s(),
send_welcome_email.s())
)
new_user_workflow.delay(username='artv',
first='Art',
last='Vandelay',
email='art@vandelay.com')
(아마도) 당신이 상상할 수 있는 모든 기능
from datetime import timedelta
!
CELERYBEAT_SCHEDULE = {
'add-every-30-seconds': {
'task': 'tasks.add',
'schedule': timedelta(seconds=30),
'args': (16, 16)
},
}
!
CELERY_TIMEZONE = 'UTC'
(아마도) 당신이 상상할 수 있는 모든 기능
(아마도) 당신이 상상할 수 있는 모든 기능
뭐… 좋은건 알겠는데….
There ain't no such thing as a free lunch
There ain't no such thing as a free lunch
– kkung
비트 성장의 가장 첫번째 난관은 셀러ㄹ…
Celery의 빛과 그림자
1 of 91

Recommended

The effective use of Django ORM by
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORMYaroslav Muravskyi
3K views54 slides
PyCon KR 2018 Effective Tips for Django ORM in Practice by
PyCon KR 2018 Effective Tips for Django ORM in PracticePyCon KR 2018 Effective Tips for Django ORM in Practice
PyCon KR 2018 Effective Tips for Django ORM in PracticeSeomgi Han
1.8K views96 slides
날로 먹는 Django admin 활용 by
날로 먹는 Django admin 활용날로 먹는 Django admin 활용
날로 먹는 Django admin 활용KyeongMook "Kay" Cha
1.7K views76 slides
간단한 블로그를 만들며 Django 이해하기 by
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기Kyoung Up Jung
24.8K views81 slides
Django, 저는 이렇게 씁니다. by
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Kyoung Up Jung
39.5K views46 slides
Django congress jp 2019 make query great again! (slide share) by
Django congress jp 2019 make query great again! (slide share)Django congress jp 2019 make query great again! (slide share)
Django congress jp 2019 make query great again! (slide share)dattun
7.6K views131 slides

More Related Content

What's hot

Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith :: AWS Summi... by
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith  :: AWS Summi...Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith  :: AWS Summi...
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith :: AWS Summi...Amazon Web Services Korea
2.9K views36 slides
SQL Server에서 Django를 추구하면 안 되는 걸까? by
SQL Server에서 Django를 추구하면 안 되는 걸까?SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?태환 김
2.5K views48 slides
Django in Production by
Django in ProductionDjango in Production
Django in ProductionHyun-woo Park
10.6K views165 slides
Django로 쇼핑몰 만들자 by
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Kyoung Up Jung
22.6K views110 slides
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱 by
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱PgDay.Seoul
186 views30 slides
Django admin site 커스텀하여 적극적으로 활용하기 by
Django admin site 커스텀하여 적극적으로 활용하기Django admin site 커스텀하여 적극적으로 활용하기
Django admin site 커스텀하여 적극적으로 활용하기영우 박
15K views67 slides

What's hot(20)

Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith :: AWS Summi... by Amazon Web Services Korea
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith  :: AWS Summi...Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith  :: AWS Summi...
Amazon Aurora Read Replica와 Django DB Router 활용팁 - 한종원, HBSmith :: AWS Summi...
SQL Server에서 Django를 추구하면 안 되는 걸까? by 태환 김
SQL Server에서 Django를 추구하면 안 되는 걸까?SQL Server에서 Django를 추구하면 안 되는 걸까?
SQL Server에서 Django를 추구하면 안 되는 걸까?
태환 김2.5K views
Django in Production by Hyun-woo Park
Django in ProductionDjango in Production
Django in Production
Hyun-woo Park10.6K views
Django로 쇼핑몰 만들자 by Kyoung Up Jung
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자
Kyoung Up Jung22.6K views
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱 by PgDay.Seoul
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
[pgday.Seoul 2022] POSTGRES 테스트코드로 기여하기 - 이동욱
PgDay.Seoul186 views
Django admin site 커스텀하여 적극적으로 활용하기 by 영우 박
Django admin site 커스텀하여 적극적으로 활용하기Django admin site 커스텀하여 적극적으로 활용하기
Django admin site 커스텀하여 적극적으로 활용하기
영우 박15K views
추천시스템 이제는 돈이 되어야 한다. by choi kyumin
추천시스템 이제는 돈이 되어야 한다.추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.
choi kyumin15.7K views
Serverless 개발에서의 인증 완벽 가이드::박선용::AWS Summit Seoul 2018 by Amazon Web Services Korea
Serverless 개발에서의 인증 완벽 가이드::박선용::AWS Summit Seoul 2018Serverless 개발에서의 인증 완벽 가이드::박선용::AWS Summit Seoul 2018
Serverless 개발에서의 인증 완벽 가이드::박선용::AWS Summit Seoul 2018
Elasticsearch를 활용한 GIS 검색 by ksdc2019
Elasticsearch를 활용한 GIS 검색Elasticsearch를 활용한 GIS 검색
Elasticsearch를 활용한 GIS 검색
ksdc20191K views
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기 by NAVER D2
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
NAVER D213.7K views
아라한사의 스프링 시큐리티 정리 by 라한사 아
아라한사의 스프링 시큐리티 정리아라한사의 스프링 시큐리티 정리
아라한사의 스프링 시큐리티 정리
라한사 아17K views
Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul) by Youngil Cho
Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)
Python/Django를 이용한 쇼핑몰 구축(2018 4월 Django Girls Seoul)
Youngil Cho6.6K views
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정 by Seongyun Byeon
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
Seongyun Byeon14.7K views
Spring3.1概要 データアクセスとトランザクション処理 by 土岐 孝平
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平17.8K views
Airflow를 이용한 데이터 Workflow 관리 by YoungHeon (Roy) Kim
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리
YoungHeon (Roy) Kim9.1K views
An in Depth Journey into Odoo's ORM by Odoo
An in Depth Journey into Odoo's ORMAn in Depth Journey into Odoo's ORM
An in Depth Journey into Odoo's ORM
Odoo88 views
성장을 좋아하는 사람이, 성장하고 싶은 사람에게 by Seongyun Byeon
성장을 좋아하는 사람이, 성장하고 싶은 사람에게성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
Seongyun Byeon8.6K views
Django를 Django답게, Django로 뉴스 사이트 만들기 by Kyoung Up Jung
Django를 Django답게, Django로 뉴스 사이트 만들기Django를 Django답게, Django로 뉴스 사이트 만들기
Django를 Django답게, Django로 뉴스 사이트 만들기
Kyoung Up Jung1.8K views

Similar to Celery의 빛과 그림자

피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220 by
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220Seomgi Han
875 views94 slides
멸종하는 공룡이 되지 않으려면 by
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면Byeongsu Kang
5.8K views41 slides
10만 라인, 26280시간의 이야기 by
10만 라인, 26280시간의 이야기10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기Minyoung Jeong
2.6K views104 slides
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요] by
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]David Lee
1.9K views141 slides
Place site Design by
Place site DesignPlace site Design
Place site DesignHaYoungChoi17
50 views53 slides
DevOps는 원격근무를 추구하면 안되는 걸까? by
DevOps는 원격근무를 추구하면 안되는 걸까?DevOps는 원격근무를 추구하면 안되는 걸까?
DevOps는 원격근무를 추구하면 안되는 걸까?Jesang Yoon
4.5K views70 slides

Similar to Celery의 빛과 그림자(20)

피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220 by Seomgi Han
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
Seomgi Han875 views
멸종하는 공룡이 되지 않으려면 by Byeongsu Kang
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
Byeongsu Kang5.8K views
10만 라인, 26280시간의 이야기 by Minyoung Jeong
10만 라인, 26280시간의 이야기10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기
Minyoung Jeong2.6K views
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요] by David Lee
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
Docker 기본 및 Docker Swarm을 활용한 분산 서버 관리 A부터 Z까지 [전체모드에서 봐주세요]
David Lee1.9K views
DevOps는 원격근무를 추구하면 안되는 걸까? by Jesang Yoon
DevOps는 원격근무를 추구하면 안되는 걸까?DevOps는 원격근무를 추구하면 안되는 걸까?
DevOps는 원격근무를 추구하면 안되는 걸까?
Jesang Yoon4.5K views
201803 파이썬 세미나 by JeongHwan Kim
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나
JeongHwan Kim759 views
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020 by AWSKRUG - AWS한국사용자모임
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
HeadFisrt Servlet&JSP Chapter 5 by J B
HeadFisrt Servlet&JSP Chapter 5HeadFisrt Servlet&JSP Chapter 5
HeadFisrt Servlet&JSP Chapter 5
J B475 views
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions by Jongin Lee
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
Jongin Lee140 views
Call back 발표자료 by JangHee Lee
Call back 발표자료Call back 발표자료
Call back 발표자료
JangHee Lee52 views
AngularJS In Production by MooYeol Lee
AngularJS In ProductionAngularJS In Production
AngularJS In Production
MooYeol Lee1.2K views
클라우드 시대에 맞는 사이트 신뢰성 엔지니어 by JeongHun Byeon
클라우드 시대에 맞는 사이트 신뢰성 엔지니어클라우드 시대에 맞는 사이트 신뢰성 엔지니어
클라우드 시대에 맞는 사이트 신뢰성 엔지니어
JeongHun Byeon11 views
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차 by Jongwon Han
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
20180602 BIT computer - AWS를 활용한 클라우드 기반 웹 개발 1주차
Jongwon Han190 views
NET 최선단 기술에 의한 고성능 웹 애플리케이션 by 흥배 최
NET 최선단 기술에 의한 고성능 웹 애플리케이션NET 최선단 기술에 의한 고성능 웹 애플리케이션
NET 최선단 기술에 의한 고성능 웹 애플리케이션
흥배 최5.2K views
WTM 2018 2개월차 신입 백엔드 개발자의 따끈따끈 개발 썰 by Eunhyang Kim
WTM 2018 2개월차 신입 백엔드 개발자의 따끈따끈 개발 썰WTM 2018 2개월차 신입 백엔드 개발자의 따끈따끈 개발 썰
WTM 2018 2개월차 신입 백엔드 개발자의 따끈따끈 개발 썰
Eunhyang Kim3.6K views
[1B6]Realm a database for android & ios by NAVER D2
[1B6]Realm a database for android & ios[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios
NAVER D26.4K views

Celery의 빛과 그림자