私はセロリとジャンゴ全般にかなり慣れていないので、知識不足を許してください。テストを実行していくつかの計算を行い、テストが終了するのを待って、正しい答えが得られるようにします。
ここに私が持っているものがあります:
app/tests.py 内
from tasks import *
c = calculate.apply_async(args=[1])
# wait until the task is done
while not calculate.AsyncResult(c.id).status == "SUCCESS":
print c.state
pass
app/tasks.py で
from celery import shared_task
@shared_task
def calculate(proj_id):
#some calculations followed by a save of the object
セロリログでタスクが正常に完了したと表示されていても、状態が保留中から変わることはありません
[2014-06-10 17:55:11,417: INFO/MainProcess] Received task: app.tasks.calculate[1f11e7ab-0add-42df-beac-3d94c6868aac]
[2014-06-10 17:55:11,505: INFO/MainProcess] Task app.tasks.calculate[1f11e7ab-0add-42df-beac-3d94c6868aac] succeeded in 0.0864518239978s: None
CELERY_IGNORE_RESULT = False も mainapp/settings.py に入れましたが、これは何もしていないようです。