2017-02-01 5 views
0

Je suis ce guide: http://docs.celeryproject.org/en/latest/django/first-steps-with-django.htmlPourquoi ma tâche de céleri ne fonctionne pas?

Mon fichier proj.celery:

from __future__ import absolute_import, unicode_literals 
import os 
from celery import Celery 
from celery.schedules import crontab 

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'hc.settings') 

app = Celery('hc') 

app.config_from_object('django.conf:settings', namespace='CELERY') 
app.autodiscover_tasks() 


@app.task 
def debug_task(a): 
    print a 
app.conf.beat_schedule = { 
    # Executes every Monday morning at 7:30 a.m. 
    'debug-every-minute': { 
     'task': 'tasks.debug_task', 
     'schedule': crontab(), 
     'args': ("BLa BLA BlA",), 
    }, 
} 

aussi, je l'ai ajouté tâche périodique dans/admin/django_celery_beat/

Je comprends que c'est n'a pas de sens d'utiliser à la fois app.conf.beat_schedule et periodic_task dans admin mais je ne vois pas d'entrées attendues après

Starting development server at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 

(Je m'attends à ce que Bla bla soit écrit sous cela) Où est-ce que je me trompe?

+0

Vous ne verrez pas les instructions d'impression sur la console de votre application django parce que la tâche de céleri sera exécuté dans un autre processus. Si vous avez démarré le céleri avec 'celery -A proj worker -l info' dans un shell, vous verrez la sortie. – trixn

Répondre

3

Run céleri par

celery -A hc worker -B -l info 
0

Vous devez exécuter la commande python manage.py celery beat pour démarrer votre tâche périodique et voir les résultats. Vous seul pouvez voir les résultats d'instruction d'impression de la tâche de céleri dans votre coquille de céleri plutôt que le shell Djerver runserver normal.

+0

./manage.py céleri beat Commande inconnue: 'celery' Tapez 'manage.py help' pour l'utilisation. 'Django_celery_beat', 'django_celery_results', 'céleri', sont dans INSTALLED_APPS –

+0

Cela fonctionne uniquement avec [django-céleri] (https://github.com/celery/django-celery) installé qui n'est pas obligatoire. – trixn

+0

utilise 'celery -A hc beat -l info' – MicroPyramid