2017-08-01 4 views
2

セロリのビートタスクに取り組んでいて、タスクが正常に動作しています(スケジュールされた時間に正常に動作しています)私の管理ページにタスクが表示されず、私のPostgreSQLデータベース(ex django_celery_beat_periodictask)セロリのタスクがdjangoのデータベースに登録されていません

私はここで何が不足していますか?

要件

Django==1.9.7 
python==3.5 
celery==4.1.0 
django-celery-beat==1.0.1 

プロジェクトツリー

advocate 
     | 
     drive 
      | 
      -- celery.py 
      -- tasks.py 

celery.py

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


os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'advocate.settings') 
# app = Celery('drive', broker='redis://localhost:6379/0') 
app = Celery('drive', broker='redis://localhost:6379/0', include=['drive.tasks']) 
app.control.purge() 
app.config_from_object('django.conf:settings', namespace='CELERY') 
# crontab for test 
app.conf.beat_schedule = { 
    'Emails-Every-Mon_Wed_Fri': { 
     'task': 'drive.tasks.weekly_task', 
     'schedule': crontab(minute='*/5'), 
    }, 
} 

app.conf.timezone = 'UTC' 

# Optional configuration, see the application user guide. 
app.conf.update(
    result_expires=3600, 
) 
app.autodiscover_tasks() 

if __name__ == '__main__': 
    app.start() 

ファイル名を指定して実行コマンドは

セロリ-Aドライブワーカー-B --loglevel =デバッグ-Sが

答えて

0

をDjangoのあなたがprojの/ projの/ __ init__.pyモジュールにアプリをインポートする必要が使用されます。これにより、Djangoの起動時にアプリケーションが読み込まれるようになります。

__init__.py

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

__all__ = ['celery_app'] 

docs

関連する問題