2015-09-11 41 views
1

我一直在閱讀一些以前的問題以及芹菜文檔的答案,我無法完全解決這個問題。我的task.py,celery.py和settings.py都包含在被稱爲招聘板的項目中包含的同一個應用程序RBWebfiles中。我試圖創建一個使用芹菜節拍調度程序運行的週期性任務。'模塊'對象沒有屬性'芹菜'

這是芹菜推薦我settings.py的部分:

from __future__ import absolute_import 
import os 
from datetime import timedelta 


CELERY_IMPORTS = ('RBWebfiles.tasks') 

CELERYBEAT_SCHEDULE = 'djcelery.schedulers.DatabaseScheduler' 
CELERYBEAT_SCHEDULE = { 
    'schedule-name':{ 
     'task': 'RBWebfiles.tasks.requestRefresher', 
     'schedule': timedelta(seconds = 30), 
    }, 
} 

BROKER_URL = 'django://' 

我還添加了「djcelery」我安裝的應用程序該文件內

這是我tasks.py文件:

from __future__ import absolute_import 
import datetime 
from celery.task.base import periodic_task 
from student.models import StudentAccount 
from celery import Celery 
from celery.utils.log import get_task_logger 
import os 

celery = Celery('tasks', broker='django://') 
logger = get_task_logger(__name__) 


os.environ['DJANGO_SETTINGS_MODULE'] = 'RBWebfiles.settings' 


@periodic_task(run_every=datetime.timedelta(seconds=30)) 
def requestRefresher(self): 
    logger.info("start task") 
    for s in StudentAccount.objects.all(): 
     s.requestLimit = 0 
     s.save() 
    return None 

,最後,這是我celery.py文件:

from __future__ import absolute_import 
import os 
from celery import Celery 
from django.conf import settings 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'conf.settings') 
app = Celery('RBWebfiles.celery') 
app.config_from_object('django.conf:settings') 
app.autodiscover_tasks(lambda : settings.INSTALLED_APPS) 

app.conf.update(
    CELERY_RESULT_BACKEND ='djcelery.backends.database:DatabaseBackend', 
) 

@app.task(bind=True) 
def debug_task(self): 
    print('Request: {0!r}'.format(self.request)) 

我試着卸載並重新安裝芹菜和django芹菜,我不知道如果我只是不明白的東西或我正在犯一個大錯誤。我嘗試使用以下命令來運行它:芹菜擊敗-A RBWebfiles

這是回溯:

C:\Users\Lexie Infantino\PycharmProjects\recruitingboard>celery beat -A RBWebfiles 
Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\celery\app\utils.py", line 235, in  find_app 
    found = sym.app 
AttributeError: 'module' object has no attribute 'app' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "C:\Python34\lib\runpy.py", line 170, in _run_module_as_main 
    "__main__", mod_spec) 
    File "C:\Python34\lib\runpy.py", line 85, in _run_code 
    exec(code, run_globals) 
    File "C:\Python34\Scripts\celery.exe\__main__.py", line 9, in <module> 
    File "C:\Python34\lib\site-packages\celery\__main__.py", line 30, in main 
    main() 
    File "C:\Python34\lib\site-packages\celery\bin\celery.py", line 81, in  main 
    cmd.execute_from_commandline(argv) 
    File "C:\Python34\lib\site-packages\celery\bin\celery.py", line 769, in  execute_from_commandline 
    super(CeleryCommand, self).execute_from_commandline(argv))) 
    File "C:\Python34\lib\site-packages\celery\bin\base.py", line 309, in  execute_from_commandline 
    argv = self.setup_app_from_commandline(argv) 
    File "C:\Python34\lib\site-packages\celery\bin\base.py", line 469, in  setup_app_from_commandline 
    self.app = self.find_app(app) 
    File "C:\Python34\lib\site-packages\celery\bin\base.py", line 489, in  find_app 
    return find_app(app, symbol_by_name=self.symbol_by_name) 
    File "C:\Python34\lib\site-packages\celery\app\utils.py", line 240, in  find_app 
    found = sym.celery 
AttributeError: 'module' object has no attribute 'celery' 

回答

0

確保djcelery在你INSTALLED_APPS,並嘗試開始芹菜節拍與manage.py celerybeat代替。

相關問題