2012-08-28 2 views
1

hey les gars je suis nouveau à céleri. Je travaille sur la planification périodique des tâches. J'ai configuré mon celeryconfig.py comme suit:comment puis-je obtenir le résultat de la planification des tâches périodiques

from datetime import timedelta 

BROKER_URL = 'redis://localhost:6379/0' 
CELERY_RESULT_BACKEND = "redis" 
CELERY_REDIS_HOST = "localhost" 
CELERY_REDIS_PORT = 6379 
CELERY_REDIS_DB = 0 
CELERY_IMPORTS=("mytasks") 
CELERYBEAT_SCHEDULE={'runs-every-60-seconds' : 
         { 
           'task': 'mytasks.add', 
           'schedule': timedelta(seconds=60), 
           'args':(16,16) 
         }, 
        } 

et mytask.py comme suit:

from celery import Celery 

celery = Celery("tasks", 
       broker='redis://localhost:6379/0', 
       backend='redis') 


@celery.task 
def add(x,y): 
     return x+y 

@celery.task 
def mul(x,y): 
     return x*y 

quand je cours celery beat -s celerybeat-schedule alors je reçois

Configuration -> . broker -> redis://localhost:6379/0 . loader -> celery.loaders.default.Loader . scheduler -> celery.beat.PersistentScheduler . db -> celerybeat-schedule . logfile -> [stderr]@INFO . maxinterval -> now (0s) [2012-08-28 12:27:17,825: INFO/MainProcess] Celerybeat: Starting... [2012-08-28 12:28:00,041: INFO/MainProcess] Scheduler: Sending due task mytasks.add [2012-08-28 12:29:00,057: INFO/MainProcess] Scheduler: Sending due task mytasks.add [2012-08-28 12:30:00,064: INFO/MainProcess] Scheduler: Sending due task mytasks.add [2012-08-28 12:31:00,097: INFO/MainProcess] Scheduler: Sending due task mytasks.add

maintenant je ne suis pas obtenir que j'ai passé les arguments (16,16) puis comment je peux obtenir le un swer de cette fonction add(x,y)

Répondre

4

Je ne suis pas sûr que je comprends tout à fait ce que vous avez demandé, mais de ce que je peux dire, votre question peut-être l'un des éléments suivants:

1) Êtes-vous en cours d'exécution celeryd (la démon ouvrier)? Si non, avez-vous commencé un céleri dans un terminal? Celery beat est un task scheduler. Ce n'est pas un worker. Celerybeat ne planifie que les tâches (c'est-à-dire les place dans une file d'attente pour qu'un travailleur finisse par consommer).

2) Comment avez-vous envisagé de visionner les résultats? Sont-ils sauvés quelque part? Depuis que vous avez défini vos résultats backis à redis, les résultats sont au moins temporairement stockés dans le redis results backend

+0

thnx. Je voulais juste imprimer les résultats. et l'ai obtenu juste en utilisant la commande dans mon script Python –

Questions connexes