我试图检查已完成的任务的结果. 这有效
from proj.tasks import add
res = add.delay(3,4)
res.get()
7
res.status
'SUCCESS'
res.id
'0d4b36e3-a503-45e4-9125-cfec0a7dca30'
Run Code Online (Sandbox Code Playgroud)
但我想从另一个应用程序运行它.所以我重新运行python shell并尝试:
from proj.tasks import add
res = add.AsyncResult('0d4b36e3-a503-45e4-9125-cfec0a7dca30')
res.status
'PENDING'
res.get() # Error
Run Code Online (Sandbox Code Playgroud)
如何检索结果?
Dem*_*ris 41
它的工作原理AsyncResult.(见这个答案)
所以首先创建任务:
from cel.tasks import add
res = add.delay(3,4)
res.status
'SUCCESS'
res.id
'432890aa-4f02-437d-aaca-1999b70efe8d'
Run Code Online (Sandbox Code Playgroud)
然后启动另一个python shell:
from celery.result import AsyncResult
from cel.tasks import app
res = AsyncResult('432890aa-4f02-437d-aaca-1999b70efe8d',app=app)
res.state
'SUCCESS'
res.get()
7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18580 次 |
| 最近记录: |