(Djangoアプリで)CeleryのメッセージキューとしてMongoDBを使用しようとしています。現在の開発バージョンのCelery(2.2.0rc2)でこれを実行できるようになっていますが、作成中のタスクをワーカーに取得させることができないようです。
バージョン:celery v2.2.0rc3
mongodb 1.6.5
pymongo 1.9
django-celery 2.2.0rc2
私の設定では、私は持っています:
CELERY_RESULT_BACKEND = "mongodb"
CELERY_MONGODB_BACKEND_SETTINGS = {
# Shouldn't need these - defaults are correct.
"host": "localhost",
"port": 27017,
"database": "celery",
"taskmeta_collection": "messages",
}
BROKER_BACKEND = 'mongodb'
BROKER_HOST = "localhost"
BROKER_PORT = 27017
BROKER_USER = ""
BROKER_PASSWORD = ""
BROKER_VHOST = ""
import djcelery
djcelery.setup_loader()
次のようにテストtasks.pyファイルを作成しました。
from celery.decorators import task
@task()
def add(x, y):
return x + y
バックグラウンドでcelerydを起動すると、正常に起動しているように見えます。次に、Pythonシェルを開いて、次のコマンドを実行します。
>>> from myapp.tasks import add
>>> result = add.delay(5,5)
>>> result
<AsyncResult: 7174368d-288b-4abe-a6d7-aeba987fa886>
>>> result.ready()
False
問題は、作業者がタスクを引き受けることがないことです。設定などが足りませんか?セロリをメッセージキューにポイントするにはどうすればよいですか?