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

Avatar photo

O CaminhoDev é mais do que um blog, é um guia para quem deseja evoluir na programação e construir uma carreira sólida no mundo da tecnologia. Aqui, compartilhamos conteúdos de alta qualidade desenvolvimento web, automação e boas práticas de código.

Publicar comentário