我的谷歌fu不能在今天早上達到snuff,因爲我無法找到信息爲什麼芹菜沒有找到我的celeryconfig文件。芹菜日誌中沒有任何東西。我在celeryconfig中的設置似乎不起作用。我正在使用Django 1.7.6,Celery 3.1.17和我的項目&應用程序正在virtualenv中運行。該應用程序由Apache和wsgi託管。芹菜沒有找到/使用celeryconfg
我使用芹菜文檔鏈接到github上的芹菜腳本。下面是我的/ etc /默認/芹菜評論刪除:
CELERYD_NODES="worker1"
CELERY_BIN="/home/celery/.virtualenvs/reporting/bin/celery"
CELERY_APP="main"
CELERYD_CHDIR="/home/celery/dev/reporting"
CELERYD_LOG_FILE="/var/log/celery/%N.log"
CELERYD_PID_FILE="/var/run/celery/%N.pid"
CELERYD_USER="celery"
CELERYD_GROUP="celery"
CELERY_CREATE_DIRS=1
CELERY_CONFIG_MODULE="celeryconfig"
正如你所看到的,我已經CELERYD_CHDIR設置爲我的項目目錄(一個與它manage.py)。這裏下面我粘貼PWD和ls的輸出,顯示該目錄中的文件:
(reporting)[email protected]:~/dev/reporting$ pwd
/home/celery/dev/reporting
(reporting)[email protected]:~/dev/reporting$ ls
celeryconfig.py csv_output manage.py reports.xml
celeryd main reporting requirements.txt
文件可被讀取。
這個問題here建議明確設置celeryconfig像這樣:--settings=celeryconfig
但我不知道在哪裏明確設置(在/etc/init.d/celeryd?),仍然,我想做的事情通過使用/ etc/default/celeryd中的設置指向celeryconfig的正確方法
最後一件事。在我的celery.py文件中,我有以下設置:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'reporting.settings')
app = Celery('main.celery',
broker='amqp://',
backend='amqp://',)
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
那麼,我該如何讓芹菜找到我的celeryconfig?可能是因爲celeryconfig不在我的python路徑上?我看不出是這樣的話,因爲我有CELERYD_CHDIR集,而且,在我的Apache的配置,我有蟒蛇路徑設置:WSGIDaemonProcess web-reports python-path=/home/celery/dev/reporting:/home/celery/.virtualenvs/reporting/lib/python2.7/site-packages
感謝所有幫助