2016-11-28 2 views
3

셀러리를 배우며 구성을 테스트하는 프로젝트를 만들었습니다. 최신 설명서에 따라 celery==4.0.0django-celery-beat==1.0.1을 설치했습니다. drf_project에서셀러리 정기 태스크가 실행되지 않습니다.

(manage.py와 주 프로젝트 DIR)가 drf_project/drf_project/settings.py에서

INSTALLED_APPS += ('django_celery_beat',) 
CELERYBEAT_SCHEDULE = { 
    "test_1": { 
     "task": "tasks.print_test", 
     "schedule": timedelta(seconds=2), 
    }, 
} 

drf_project/drf_project/INIT에서

from __future__ import absolute_import, unicode_literals 
from celery import Celery 
import os 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'drf_project.settings') 
app = Celery('drf_project') 
app.config_from_object('django.conf:settings', namespace='CELERY') 
app.autodiscover_tasks() 

을 /drf_project/celery.py 내 user_manageme에서

from __future__ import absolute_import, unicode_literals 
from .celery import app as celery_app 

__all__ = ['celery_app'] 

NT 응용 프로그램 (drf_project/user_mangement /) 내가 추가 된 tasks.py

from celery import Celery 
from time import strftime 

app = Celery() 

@app.task 
def print_test(): 
    print strftime('%Y-%m-%d %H:%M:%S') 
    with open('abc.txt', 'ab+') as test_file: 
     test_file.writeline(strftime('%Y-%m-%d %H:%M:%S')) 

나는 셀러리 노동자와 다를 터미널 내 장고 프로젝트 dev에 서버 실행하면

celery -A drf_project worker -l info 

python manage.py runserver 

[tasks] 
    . user_management.tasks.print_test 
:

내가 좋아하는 셀러리 로그에 내 작업을 볼 수 있습니다

하지만 실행되지 않습니다. 또한 어떤 오류도 발생하지 않습니다. 그래서 내가 뭘 잘못 했니? 나는 샐러리의 공식 문서를 따랐다.

답변

5

정기적 인 작업을 실행하려면 셀러리 작업자 대신 셀러리 비트를으로 실행해야합니다.

이 페이지의 끝에서 더 많은 정보를 찾을 수 있습니다 http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

+0

나는'셀러리 -A의 drf_project의 beat'에 의해 비트 서비스를 시작했다. 하지만 여전히 작업이 실행되지 않습니다 그리고 난 장고 서버와 셀러리 어디서나 어떤 종류의 로그를 볼 수 없습니다. –

+2

알아내는 데 며칠이 걸렸습니다. 비트는 예정대로 작업을 보냅니다. 그리고 그 작업들이 대기하고 있습니다. 그래서, 당신은 적어도 그 작업을 선택하고 실행되도록 작업을 시작해야합니다! –

+0

@DatTT 팁 주셔서 감사합니다. –

관련 문제