私は私のdjangoプロジェクトで長いタスクを実行する必要があります。ブローカーとしてredisとセロリを使用することを望んだ。インストール済みRedisのは、実行されます。djangoプロジェクトでのセロリの非同期タスク。使い方?
サーバーは、今私はジャンゴ・セロリをインストールしたよりポート6379
上の接続を受け入れる準備ができている、設定します。
import djcelery
djcelery.setup_loader()
BROKER_HOST = "localhost"
BROKER_PORT = 6379 #redis
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"
し、それを実行します。
python manage.py celeryd -l DEBUG
[...]
[2011-06-18 10:31:37,913: DEBUG/MainProcess] Starting thread Timer...
[2011-06-18 10:31:37,914: DEBUG/MainProcess] Starting thread Consumer...
[2011-06-18 10:31:37,914: WARNING/MainProcess] [email protected] has started.
[2011-06-18 10:31:37,914: DEBUG/MainProcess] Consumer: Re-establishing connection to the broker...
私のサンプルタスクは次のようになります。
from celery.decorators import task
@task()
def add(x, y):
return x + y
今私は貝にそれを実行しよう:
In [3]: from message.tasks import add
In [4]: r=add.delay(2, 5)
、それは非常に長く待つとトレースバックhttp://dpaste.com/555939/をレンダリングします。何ができますか?多分私は何かが恋しいですか?
問題は、私のようにシェルを実行したということであった: >のpython manage.pyシェル – greg
ああ、はい、あなただけのDjangoのアプリでファイルからセロリを実行することができます確かに、それに気づいたはずです:) – fijter