Looking for django Keywords? Try Ask4Keywords

DjangoTâches Async (Céleri)


Remarques

Celery est une file d'attente de tâches qui peut exécuter des tâches en arrière-plan ou planifiées et s'intègre assez bien à Django. Le céleri nécessite quelque chose connu sous le nom de courtier de messages pour transmettre les messages de l'invocation aux travailleurs. Ce courtier de messages peut être redis, rabbitmq ou même Django ORM / db, bien que cette approche ne soit pas recommandée.

Avant de commencer avec l'exemple, vous devrez configurer le céleri. Pour configurer le céleri, créez un fichier celery_config.py dans l'application principale, parallèle au fichier settings.py .

from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings

# broker url 
BROKER_URL = 'redis://localhost:6379/0'

# Indicate Celery to use the default Django settings module
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')

app = Celery('config')
app.config_from_object('django.conf:settings')
# if you do not need to keep track of results, this can be turned off
app.conf.update(
    CELERY_RESULT_BACKEND=BROKER_URL,
)

# This line will tell Celery to autodiscover all your tasks.py that are in your app folders
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

Et dans le fichier __init__.py l'application principale, importez l'application Céleri. comme ça

# -*- coding: utf-8 -*- 
# Not required for Python 3. 
from __future__ import absolute_import

from .celery_config import app as celery_app  # noqa

Pour exécuter un travailleur céleri, utilisez cette commande au niveau où manage.py est.

# pros is your django project, 
celery -A proj worker -l info

Tâches Async (Céleri) Exemples Liés