我是芹菜noob目前,但試圖開始。我跑的Django 1.4 + Django的芹菜芹菜+與3.0.21一個Redis的存儲後端。我可以得到一個工人,celerybeat通過「手動」運行:芹菜似乎無法找到我的Django項目的設置
python manage.py celery worker -E -B --loglevel=INFO -n w1.manual
我想這個進入初始化腳本。所以,我已經安裝了芹菜提供的兩個init腳本。根據需要和腳本做工精細,我可以運行它們。但是,由腳本啓動的工作人員失敗了。它似乎沒有找到我的項目設置。這是我的配置文件在/等/默認/ celeryd內容:
# Name of nodes to start
# here we have a single node
CELERYD_NODES="w1"
# or we could have three nodes:
#CELERYD_NODES="w1 w2 w3"
# Where to chdir at start.
CELERYD_CHDIR="/var/www/www_project_com/"
# Extra arguments to celeryd
CELERYD_OPTS="--time-limit=300 --concurrency=8"
# Name of the celery config module.
CELERY_CONFIG_MODULE="celeryconfig"
# %n will be replaced with the nodename.
CELERYD_LOG_FILE="/var/log/celery/%n.log"
CELERYD_PID_FILE="/var/run/celery/%n.pid"
# Workers should run as an unprivileged user.
CELERYD_USER="www-data"
CELERYD_GROUP="www-data"
# Name of the projects settings module
export DJANGO_SETTINGS_MODULE="settings"
我的設置文件實際上分爲本地/生產/等。和生產設置位於這裏:
/var/www/www_project_com/project/settings/production.py
我試圖更改配置文件的最後一行是:
export DJANGO_SETTINGS_MODULE="project.settings.production"
,但它似乎沒有什麼區別。
我知道init腳本正在採集設置文件/ etc/default/celery,因爲使用我自定義的用戶和組的過程是。
很明顯的是,過程失敗,因爲日誌顯示:
consumer: Cannot connect to amqp://[email protected]:5672//: [Errno 111] Connection refused.
這我相信是一個默認設置。我的Django項目配置爲使用Redis的使用連接字符串:
BROKER_URL = 'redis://localhost:6379/0'
至於另一種嘗試排序了這一點,我已經試過的最後一行設置爲:
export DJANGO_SETTINGS_MODULE="settings.production"
這導致:
[2013-07-19 05:31:48,117: ERROR/MainProcess] Unrecoverable error: ImportError('No module named settings',)
在日誌中。
我在做什麼錯?
謝謝回答。我在做一個新的文件,'celeryconfig.py'擺在我的項目的根目錄'在/ var/WWW/www_project_com/celeryconfig.py',我複製我所有的芹菜相關的配置到這個文件和重試。根本沒有區別。 =( – mkoistinen
啊哈!所以。原來,解決方案是註釋掉CELERY_CONFIG_MODULE =「...」這行,顯然這是覆蓋了DJANGO_SETTINGS_MODULE這一行。我想給你信用,你可以更新你的答案,包括語言「...或者,如果你想使用DJANGO_SETTINGS_MODULE = ...,註釋掉CELERY_CONFIG_MODULE行嗎?如果是的話,我會標記它 – mkoistinen
很高興聽到它現在有效!我繼續前進並更新了答案。現在我很好奇爲什麼當你將設置移動到celeryconfig.py時CLEERY_CONFIG_MODULE指向更新後的配置文件時,它不起作用。 –