3

インストール

私は Django(1.4) celery(3.0.13) と RabbitMQ(v3.0.4) を使用しています。バックエンド データベースは sqlite です。

セロリはによってインストールされましたpip install django-celery

設定

setting.py で:

# For django-celery
import djcelery
djcelery.setup_loader()
BROKER_URL = 'amqp://user:pwd@sd5:5672/8086'

### and adding 'djcelery' to INSTALLED_APPS

ランニング

でデータベースをセットアップした後、southrabbitmq-server を起動し、manage.py celery worker --loglevel=debug

接続が確立されていることがわかりました。

 -------------- celery@sd5 v3.0.16 (Chiastic Slide)
---- **** ----- 
--- * ***  * -- [Configuration]
-- * - **** --- . broker:      amqp://utils@sd5:5672/8086
- ** ---------- . app:         default:0x8a5106c (djcelery.loaders.DjangoLoader)
- ** ---------- . concurrency: 2 (processes)
- ** ---------- . events:      OFF (enable -E to monitor this worker)
- ** ---------- 
    - *** --- * --- [Queues]
-- ******* ---- . celery:      exchange:celery(direct) binding:celery
--- ***** ----- 

[Tasks]
  . celery.backend_cleanup
      . celery.chain
  . celery.chord
  . celery.chord_unlock
  . celery.chunks
  . celery.group
  . celery.map
  . celery.starmap
  . utils.weixin.tasks.celery_add

[2013-03-19 19:50:00,460: WARNING/MainProcess] celery@sd5 ready.
[2013-03-19 19:50:00,483: INFO/MainProcess] consumer: Connected to amqp://utils@sd5:5672/8086.
[2013-03-19 19:50:00,498: DEBUG/MainProcess] consumer: Ready to accept tasks!

そして rabbit@sd5.log で:

=INFO REPORT==== 19-Mar-2013::19:50:00 ===
accepting AMQP connection <0.1655.0> (127.0.0.1:50087 -> 127.0.0.1:5672)

問題

次に、次の場所でタスクを実行utils.weixin.tasks.celery_addmanage.py shellます。

>>> from utils.weixin.tasks import celery_add
>>> result = celery_add.delay(1,3)
>>> result.ready()
False
>>> result.get()

ここで永遠にハングアップ...

そして、「受け取ったタスク」などではなく、セロリワーカーのログとrabbitmqのログには何も表示されません。

タスクを呼び出してもワーカーと通信していないようです。


質問

何が間違っていたのかを知るにはどうすればよいですか。これを修正するにはどうすればよいですか?

感謝!

4

0 に答える 0