1
要麼我不明白如何Celery工作,或它對我來說奇怪。芹菜 - 相同的參數,多個調用
我有以下daemon.py模塊:
從celery.task導入任務
import time
@task
def add(x, y):
time.sleep(x + y)
return "x+y=%s" % (x + y)
推出celeryd用命令:
$ celeryd -I daemon -l DEBUG
而在單獨的Python控制檯,我做如下:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from daemon import add
>>> r = add.delay(100,20)
>>> r
<AsyncResult: 016a6eac-333c-4606-9f3c-ea3b38dac0ea>
現在,我認爲當我重複add.delay(100,20)時,它不會調用另一個add函數,但會返回當前工作的daemon.add的AsyncResult。但是:
>>> r2 = add.delay(100,20)
>>> r2.ready()
False
>>> r.ready()
True
因此很明顯,R2是不同調用和大於r不同結果。
我做錯了什麼?或者我不明白應該如何使用芹菜?
的Python 2.7,芹菜2.4.5,芹菜配置:
BROKER_URL = "amqp://guest:[email protected]:5672//"
CELERY_RESULT_BACKEND = "amqp"
REDIS_HOST = "localhost"
爲什麼它會返回之前的異步結果?是什麼讓你覺得呢? – jterrace
http://www.celeryproject.org/tutorials/first-steps-with-celery/讓我覺得,但似乎我誤解了。 那麼,我如何才能得到10分鐘的任務結果,例如我開始在例如。以前的網頁運行? – Mvoicem