Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tarefas assíncronas com django e celery
Search
Allisson Azevedo
June 11, 2013
Programming
1
23k
Tarefas assíncronas com django e celery
Slides da palestra no mutirão python:
https://plus.google.com/events/c4a18aljra59dqf56t1lac89o4k
Allisson Azevedo
June 11, 2013
Tweet
Share
More Decks by Allisson Azevedo
See All by Allisson Azevedo
Programação Assíncrona com Asyncio
allisson
0
63
Crawleando sites com NodeJS
allisson
0
140
Introdução a linguagem Go
allisson
0
230
Docker + Django
allisson
5
530
Construindo um micro framework web em Python
allisson
0
200
Consumindo API's OAuth{1,2} com Python
allisson
1
140
Deploy completo de uma aplicação Django
allisson
6
390
Desenvolvimento Web com Django
allisson
0
130
Otimizando sites com o nosql redis
allisson
4
130
Other Decks in Programming
See All in Programming
ここ1~2年くらいで 使えるようになった(主要ブラウザーの最新版 がすべて対応した ) ウェブの新機能について ランダムに喋る!
myzkyy
7
5.9k
document.write再考
brn
5
2k
PHPerライフをChrome拡張開発でちょっと便利に / PR TIMES x DMM.com
meihei3
0
200
sbt-assemblyにハマってDB接続できず時間が溶けた話
wakye5815
1
660
Running Laravel Apps With FrankenPHP
dunglas
4
1.2k
Deno に Web 標準 API を実装する / Implementing Web Standard API to Deno
petamoriken
0
310
人口ダッシュボード作成講座資料
jo76shin
0
170
見せ算をScalaで実装してみた / Scalaわいわい勉強会 #2
arthur1
0
1.1k
「Hono遍歴」と「HonoXでブログ作成」
yasu551
0
170
期限が近づいてきた!Privacy Manifests対応
ryunakayama
5
3.1k
TDDと今まで
kanayannet
0
110
mandaRa: R言語ユーザのための新しい知識共有の場 / mandara_tokyor111
s_uryu
2
410
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
36
2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
Product Roadmaps are Hard
iamctodd
43
9.6k
Designing for humans not robots
tammielis
247
25k
Ruby is Unlike a Banana
tanoku
95
10k
Navigating Team Friction
lara
177
13k
The Language of Interfaces
destraynor
150
22k
Happy Clients
brianwarren
91
6.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
644
57k
Transcript
TAREFAS ASSÍNCRONAS COM DJANGO E CELERY Allisson Azevedo Monday, June
10, 13
ALLISSON AZEVEDO Graduado em Licenciatura em Computação Desenvolvedor Web http://speakerdeck.com/allisson
http://slideshare.net/allisson http://github.com/allisson http://youtube.com/user/allissonazevedo Monday, June 10, 13
Monday, June 10, 13
Monday, June 10, 13
PORQUE EU PRECISO DE UM TASK/JOB QUEUE? Necessidade de processar
uma tarefa fora do ciclo de requisição e reposta Processamento de vídeo/imagens Envio de e-mails Geração de relatórios complexos Comunicação com API’s externas (twitter, facebook) Monday, June 10, 13
PORQUE EU PRECISO DE UM TASK/JOB QUEUE? Agendar tarefas (substituir
o cron) Trabalhar com indexação de um search engine Monday, June 10, 13
COMO FUNCIONA? Client Quem gera a tarefa Message Broker Gerencia
a fila de tarefas Worker Recebe as tarefas do Broker e executa as mesmas Monday, June 10, 13
COMO FUNCIONA? Result Store Onde são guardados os resultados das
tarefas Monday, June 10, 13
CELERY “Distributed Task Queue” Escrito em python Integração com os
principais frameworks python (django, pyramid, flask, web2py, tornado) Broker Backends (rabbitmq, redis, sqlalchemy, django, mongodb) Result Store Backends (Redis, memcached, MongoDB) Monday, June 10, 13
QUAL BROKER USAR? RabbitMQ (http://stackoverflow.com/a/9176046) Redis Não use o broker
como result store Monday, June 10, 13
INTEGRANDO COM O DJANGO pip install django-celery Adicione o djcelery
no INSTALLED_APPS Adicione as linhas no settings.py import djcelery djcelery.setup_loader() Monday, June 10, 13
INTEGRANDO COM O DJANGO Selecione o broker BROKER_URL = 'redis://localhost:6379/0'
#Redis Inicie o worker python manage.py celery worker --loglevel=info Monday, June 10, 13
INTEGRANDO COM O DJANGO Em seus projetos, crie um arquivo
chamado tasks.py Monday, June 10, 13
INTEGRANDO COM O DJANGO from celery import task @task() def
add(x, y): return x + y Monday, June 10, 13
INTEGRANDO COM O DJANGO Rode a task Monday, June 10,
13
INTEGRANDO COM O DJANGO >>> from celerytest.tasks import add >>>
add.delay(2, 2) >>> add.apply_async((2, 2)) Monday, June 10, 13
MÃO NA MASSA! https://github.com/allisson/django-social-monitor- example Monday, June 10, 13
Monday, June 10, 13
OBRIGADO! Monday, June 10, 13