2012-08-03 3 views
3

Je commence juste avec céleri, en essayant d'exécuter une tâche périodique.Comment configurer et exécuter celerybeat

Configuré * rabbitmq ** ajouté celeryconfig.py.

Et ajouté code suivant dans tasks.py:

from celery.decorators import periodic_task 
from datetime import timedelta 

@periodic_task(run_every=timedelta(seconds=2)) 
def every_2_seconds(): 
    print("Running periodic task!") 

Maintenant, quand je commence celerybeat en tapant "celerybeat" dans mon terminal, il commence à courir avec le message follwing

celerybeat 
celerybeat v3.0.3 (Chiastic Slide) is starting. 
__ - ... __ -  _ 
Configuration -> 
    . broker -> amqp://[email protected]:5672// 
    . loader -> celery.loaders.default.Loader 
    . scheduler -> celery.beat.PersistentScheduler 
    . db -> celerybeat-schedule 
    . logfile -> [stderr]@INFO 
    . maxinterval -> now (0s) 
[2012-08-03 14:24:52,202: INFO/MainProcess] Celerybeat: Starting... 

Et il est pas de sortie de every_2_seconds méthode dans le terminal.Je suppose que je dois spécifier quelle application à exécuter ou quelles tâches pendant la commande celerybeat.Comment faire cela?

Comment puis-je spécifier des tâches et imprimer la ligne toutes les 2 secondes en tant que tâches périodiques?

Merci.

Répondre

3

Ajoutez CELERY_IMPORTS=("tasks",) à votre céleryconfig.py puis exécutez celerybeat.

+2

Exécutez également celeryd qui va imprimer "Tâche périodique en cours!" toutes les deux secondes – mushfiq

+0

Hey @mushfiq - pouvez-vous aider ici, je suis en train de courir céleri beat via céleri multi avec --beat et --schedule options mais aucune tâche n'est en cours d'exécution. J'ai essayé la tâche de décoration avec '@ app.periodic_task' avec' CELERY_IMPORTS = ("tasks",) 'mais sans succès. – Greg0ry

+0

@ Greg0ry votre courtier est en place? Quelle version de Celery vous utilisez? – mushfiq

Questions connexes