2

Привет друзья Мне нужна ваша помощь в периодических задачах для приложения django. Я пытаюсь сделать периодическую задачу с помощью сельдерея, но он не работает должным образом. У меня простая задача, в которой есть только оператор печати. Сельдерей работает только на 1-й раз, и я также пытался «сельдерей удар», но не получили результатаПериодическая задача не работает должным образом в сельдерее django

мой «task.py» является

from __future__ import absolute_import 
from myapp.celery import app 
from celery.schedules import crontab 
from celery.task import periodic_task 
from celery.registry import tasks 

@periodic_task(run_every=(crontab(minute='*/1')), name="some_task") 
def every_minute(a,b): 
    print("This is running after one minute",a+b) 
    return "task done" 
tasks.register(every_minute) 

и «view.py»

from django.http import HttpResponse 
from django.views.generic import View 
from .tasks import * 
from .models import * 
from datetime import datetime, timedelta 

class CeleryTest(View): 
    def get(self,request): 
     send_date = datetime.now() + timedelta(seconds=200) 
     task=every_minute.apply_async([5,6],etc=send_date) 
     while not task.ready(): 
      print "calling............task is not ready" 
     return HttpResponse("hi get ur task") 

Я просто добавил этот график в более ранней установке сельдерея. «setting.py»

CELERYBEAT_SCHEDULE = { 

    'every_minute': { 
     'task': 'every_minute.add', 
     'schedule': crontab(minute='*/1'), 
     'args': (5, 6), 
    }, 
} 

Спасибо друзьям за ваше время.

ответ

2

использовать расписание, как это ....

CELERYBEAT_SCHEDULE = { 
     'every_minute': { 
     'task': 'every_minute', 
     }, 
} 

и запустить эту команду для сельдерея

python manage.py celeryd -BE -l info 

теперь мои периодические задачи работает нормально.

Смежные вопросы