2011-09-21 34 views
4

我试图同时用户在浏览我的网站在后台运行一些任务,但每当我用芹菜调用一个函数它似乎是同步而不是异步执行。芹菜的Django:无法执行任务异步

例如,当我打电话function.delay()整个网站挂起,直到function.delay()返回。以类似的方式调用函数的其他方法(apply_async,子任务)也存在同样的问题。

我猜在任何Django的或芹菜的东西是配置错误,但我不知道它是什么。在settings.py

芹菜配置:

import djcelery 
djcelery.setup_loader() 

CELERY_RESULT_BACKEND = "amqp" 
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler" 
BROKER_HOST = "localhost" 
BROKER_PORT = 5672 
BROKER_USER = "test" 
BROKER_PASSWORD = "test" 
BROKER_VHOST = "testhost" 

TEST_RUNNER = "djcelery.contrib.test_runner.run_tests" 

CELERY_IMPORTS = ("myapp.tasks",) 

BROKER_BACKEND = "memory" 
CELERY_ALWAYS_EAGER = True 

尝试启动以 “./manage.py celeryd” 芹菜守护程序时,得到以下输出:

[2011-09-23 09:25:38,026: WARNING/MainProcess] 

-------------- [email protected] v2.2.7 
---- **** ----- 
--- * *** * -- [Configuration] 
-- * - **** --- . broker:  memory://[email protected]:5672/testhost 
- ** ---------- . loader:  djcelery.loaders.DjangoLoader 
- ** ---------- . logfile:  [stderr]@WARNING 
- ** ---------- . concurrency: 4 
- ** ---------- . events:  OFF 
- *** --- * --- . beat:  OFF 
-- ******* ---- 
--- ***** ----- [Queues] 
-------------- . celery:  exchange:celery (direct) binding:celery 


[2011-09-23 09:25:38,035: WARNING/MainProcess] [email protected] has started. 
+0

什么Web服务器您使用的读有用吗? – WTK

+0

我目前正在使用默认的Django设置关闭本地主机。计划一旦我开始使用Apache,就使用Apache。 –

+0

嗯,你提供相关的芹菜然后配置和给我们介绍一下你是怎么开始芹菜守护进程。 – WTK

回答