2013-07-19 61 views
2

我是芹菜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',) 

在日誌中。

我在做什麼錯?

回答

2

如果您想使用DJANGO_SETTINGS_MODULE配置,請確保未設置CELERY_CONFIG_MODULE的配置。

+0

謝謝回答。我在做一個新的文件,'celeryconfig.py'擺在我的項目的根目錄'在/ var/WWW/www_project_com/celeryconfig.py',我複製我所有的芹菜相關的配置到這個文件和重試。根本沒有區別。 =( – mkoistinen

+0

啊哈!所以。原來,解決方案是註釋掉CELERY_CONFIG_MODULE =「...」這行,顯然這是覆蓋了DJANGO_SETTINGS_MODULE這一行。我想給你信用,你可以更新你的答案,包括語言「...或者,如果你想使用DJANGO_SETTINGS_MODULE = ...,註釋掉CELERY_CONFIG_MODULE行嗎?如果是的話,我會標記它 – mkoistinen

+0

很高興聽到它現在有效!我繼續前進並更新了答案。現在我很好奇爲什麼當你將設置移動到celeryconfig.py時CLEERY_CONFIG_MODULE指向更新後的配置文件時,它不起作用。 –