Ric*_*ick 3 python django long-running-processes
我正在使用Django并且正在制作一些我正在通过我的Web用户界面进行交互的长时间运行的进程.例如,它们将一直运行,每隔几分钟检查一次数据库值,并且只有在这已经改变时停止(将是布尔值为true).所以,我希望能够使用Django与这些进行交互,但不确定如何做到这一点.当我以前使用PHP时,我有一些方法可以做到这一点,想象一下在Python中更容易做到但是我的搜索无法找到任何东西.
基本上,我想要做的就是执行python代码而不等待它完成,所以它只是开始执行然后继续做django所需的任何其他事情,快速返回给用户的新页面.
我知道有办法调用外部程序,所以我想这可能是唯一的方法吗?有没有办法只需调用其他python代码?
谢谢你的建议.
无法保证,因为我还没有使用它,但"Celery"几乎可以满足您的要求,而且最初是专为Django而设计的.
他们的示例显示了添加两个数字的简单任务:
from celery.decorators import task
@task
def add(x, y):
return x + y
Run Code Online (Sandbox Code Playgroud)
您可以在后台执行任务,或等待它完成:
>>> result = add.delay(8, 8)
>>> result.wait() # wait for and return the result
16
Run Code Online (Sandbox Code Playgroud)
您可能还需要安装RabbitMQ以使其正常工作,因此它可能比您正在寻找的解决方案更复杂,但它将实现您的目标.
| 归档时间: |
|
| 查看次数: |
1173 次 |
| 最近记录: |