5

私は一体何を間違っているのですか?

最近、django-skelという素晴らしい django テンプレートを見つけました。django で heroku を使用するのが非常に簡単になったので、プロジェクトを開始しました。セロリを機能させようとするまで、すべてうまくいっていました。何を試しても、タスクを実行できませんでした。そこで、他の狂気のせいで物事が妨げられずに機能するかどうかを確認するためだけに、新しいベアボーン アプリを開始しました。

これは私の最低限のアプリです。これをherokuで実行しています。Django 管理者は機能しています。データベースを同期して移行しました。RabbitMQ に CloudAMQP Little Lemur を使用しています。RabbitMQ インターフェイスでキューに入れられたリクエストが表示されますが、何も起こりません。タスクをキューに入れる方法は、シェルで手動で実行されます。

from herokutest.apps.otgcelery.tasks import add
result = add.delay(2,2)

3 つの dyno がすべて実行されていることを確認しますが、まだ何も実行されていません。

また、私はそれをローカルで動作させています。

たくさんの質問があると思いますが、喜んでお答えします。ただ尋ねてください。

4

1 に答える 1

2

みんなの助けに感謝します。私が間違ったことをしてしまったことがいくつかありました。最初のことは、タスクを間違ってインポートしていたことです。私がしなければならなかったのは:

from apps.otgcelery.tasks import add
result = add.delay(2,2)

Celery は、タスクのインポート方法に非常にうるさいです。2 つ目の問題は、CloudAMQP Free アドオンが django-skel をそのまま使用すると機能しないことです。接続の数を 3 つに制限し、各スレッドが起動する方法でこれらの接続を信じられないほど高速に使用し、タスクが接続されなくなります。そこで、いくつかの異なる方法でこれを修正しました。別の BigWigs RabbitMQ を試してみましたが、うまくいきました。しかし、まだベータ版だったので、Redis を試してみることにしました。それもうまく機能し、私のタスクは私が呼び出すことができるのと同じくらい速く開始されます.

改めまして、皆様のご協力に感謝申し上げます。

于 2013-04-23T11:04:13.813 に答える