Como Usar o Celery no Django para Processamento Assíncrono
Introdução
O Celery é uma poderosa ferramenta para execução de tarefas assíncronas no Django. Ele permite processar tarefas em segundo plano, melhorando o desempenho e a escalabilidade das aplicações web. Neste artigo, vamos mostrar como configurar e utilizar o Celery no Django de forma eficiente.
O Que é o Celery?
Celery é um sistema de fila de tarefas distribuídas que permite a execução assíncrona de funções Python. Ele é amplamente usado em aplicações Django para executar tarefas demoradas, como envio de e-mails, processamento de arquivos e integração com APIs externas.
Instalando o Celery no Django
Para começar, precisamos instalar o Celery e um backend para armazenar as filas de tarefas, como o Redis:
pip install celery redis
Em seguida, configure o Celery no seu projeto Django:
Configurando o Celery
Crie um arquivo celery.py
dentro do seu app principal e adicione:
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'seu_projeto.settings')
app = Celery('seu_projeto')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks()
No settings.py
, adicione as configurações do Celery:
BROKER_URL = 'redis://localhost:6379/0'
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
Criando Tarefas no Celery
Para criar uma tarefa assíncrona, crie um arquivo tasks.py
dentro do seu app e defina:
from celery import shared_task
@shared_task
def adicionar(x, y):
return x + y
Agora você pode chamar essa tarefa de forma assíncrona:
adicionar.delay(4, 6)
Executando o Celery
Para iniciar o Celery, execute o seguinte comando:
celery -A seu_projeto worker --loglevel=info
Isso iniciará um worker que processará as tarefas em segundo plano.
Monitorando Tarefas com Flower
Para monitorar as tarefas do Celery, instale o Flower:
pip install flower
Execute o Flower para visualizar o status das tarefas:
celery -A seu_projeto flower
Isso abrirá uma interface web onde você pode acompanhar suas tarefas.
Conclusão
O Celery é uma ferramenta essencial para quem deseja melhorar o desempenho de aplicações Django. Com ele, é possível executar tarefas demoradas em segundo plano, garantindo maior eficiência e escalabilidade.
Se você deseja otimizar sua aplicação Django, implementar o Celery é um excelente passo!
Documentação: https://docs.celeryq.dev/en/stable/django/first-steps-with-django.html#using-celery-with-django
Publicar comentário