0

Heroku の Django プロジェクトで IronMQ とキャッシュを使用してセロリを実行しようとしていますが、次のメッセージが表示されます。

2013-04-14T22:29:17.479887+00:00 app[celeryd.1]: ImportError: No module named tasks

私は何を間違っていますか?以下は私の関連コードであり、djcelery と私のアプリは両方ともインストールされたアプリにあります。

要件 (IronMQ の前に試したので、Rabbit AMQP がそこにあります):

Django==1.5.1
amqp==1.0.11
anyjson==0.3.3
billiard==2.7.3.27
boto==2.8.0
celery==3.0.18
dj-database-url==0.2.1
django-celery==3.0.17
django-storages==1.1.8
gunicorn==0.17.2
iron-cache==0.2.0
iron-celery==0.3.1
iron-core==1.0.2
iron-mq==0.4
iso8601==0.1.4
kombu==2.5.10
psycopg2==2.4.6
python-dateutil==2.1
pytz==2013b
requests==1.2.0
six==1.3.0
wsgiref==0.1.2

プロファイル:

web: gunicorn myapp.wsgi
celeryd: celery -A tasks worker --loglevel=info -E

設定:

BROKER_URL = 'ironmq://'
CELERY_RESULT_BACKEND = 'ironcache://'

import djcelery
import iron_celery

djcelery.setup_loader()

タスク:

from celery import task
@task()
def batchAdd(result_length, result_amount):

ビュー:

from app import tasks
r = batchAdd.delay(result_length, result_amount)
return HttpResponse(r.task_id)

また試してみました(ビューで):

from tasks import batchAdd
r = batchAdd.delay(result_length, result_amount)
return HttpResponse(r.task_id)

そして、これも試してみました(ビューで):

from app.tasks import batchAdd
r = batchAdd.delay(result_length, result_amount)
return HttpResponse(r.task_id)

また、ここに私の構造があります:

projectname
--app
----__init__.py
----__init__.pyc
----admin.py
----admin.pyc
----forms.py
----forms.pyc
----models.py
----models.pyc
----tasks.py
----tests.py
----views.py
----views.pyc
--manage.py
--Procfile
--projectname
----__init__.py
----__init__.pyc
----settings.py
----settings.pyc
----static
----templates
----urls.py
----urls.pyc
----wsgi.py
----wsgi.pyc
--requirements.txt
4

2 に答える 2

3

manage.py 経由でセロリをロードしようとしましたか?

python manage.py celery worker --loglevel=info
于 2013-04-15T15:36:01.360 に答える
0

次を使用してセロリを実行することはできません。

celery -A tasks worker --loglevel=info -E

Celery には -A オプション付きの celeryconfig ファイルが必要です。djcelery docs で説明されているように、セロリを実行する必要があります。

python manage.py celery worker --loglevel=info

また、views.pyを次のように修正する必要があります

from app.tasks import batchAdd
于 2013-04-16T06:42:13.103 に答える