Boj*_*vic 8 python django celery
我有一个django网络服务器,以及一个用户输入信息的表单.每次表单信息更改时,我都会在我的数据库中更新模型,并且在某些时候验证某些内容时,我会在celery中创建一个长时间运行的任务,以便在用户单击下一步之前获取我的结果.
我使用Django Celery和RabbitMQ作为代理,我的问题是什么是最合适的IN CASE方式,任务仍然没有完成只是锁定django中的响应线程,直到任务是state.SUCCESSFUL我尝试使用AsyncResult.获取方法,但它只是锁定线程很长一段时间,然后给我结果.IE它不是即时的,有没有人知道如何解决这个问题?
你可以等到结果出来ready().
from time import sleep
result = some_task.apply_async(args=myargs)
while not result.ready():
sleep(0.5)
result_output = result.get()
Run Code Online (Sandbox Code Playgroud)
它似乎还有一个wait(),所以你可以使用它.以下应基本上与上面的代码做同样的事情.
result = some_task.apply_async(args=myargs)
result_output = result.wait(timeout=None, interval=0.5)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6896 次 |
| 最近记录: |