Passer au contenu principal
Celery est un système distribué simple, flexible et fiable pour traiter de grandes quantités de messages, tout en fournissant aux opérations les outils nécessaires pour maintenir un tel système.

Installation

🐍 N’oubliez pas d’installer le paquet AppSignal for Python dans votre application au préalable.
Tout d’abord, installez le package opentelemetry-instrumentation-celery. Nous recommandons également d’installer le package d’instrumentation Redis. Pour ajouter les deux packages d’instrumentation à votre projet, ajoutez les lignes suivantes à votre fichier requirements.txt :

<PythonDisableInstrumentations />
# requirements.txt
opentelemetry-instrumentation-celery
opentelemetry-instrumentation-redis

Configuration

Celery nécessite une configuration supplémentaire, car c’est un composant d’application qui démarre séparément. Comme indiqué dans l’exemple ci-dessous, le module appsignal doit être importé dans le fichier principal utilisé pour démarrer Celery, et la méthode appsignal.start() doit être appelée depuis une méthode portant le décorateur @worker_process_init.connect. Dans l’exemple ci-dessous, cette initialisation a lieu dans le fichier tasks.py. Ce fichier peut porter un nom différent dans votre application.
# tasks.py

# Import this file
import appsignal

from celery import Celery

# Import this file
from celery.signals import worker_process_init

# Add the init_celery_tracing method with its annotation
@worker_process_init.connect(weak=False)
def init_celery_tracing(*args, **kwargs):
    appsignal.start()

app = Celery('tasks', broker='redis://localhost')

@app.task
def slow_task():
    # Do things