我需要启动一个长时间运行的进程来响应 django 中的表单提交。然后,我希望能够使用 ajax 进行轮询并让视图响应进程的状态(启动、停止或运行)。此外,我希望能够停止该过程。
所以我的观点是这样的:
def start()
. . .
def stop()
. . .
def status()
. . .
这个特殊问题已在 SO 上多次解决,但我的情况略有不同: 我正在寻找一个完全是 pythonic 的解决方案,不需要任何在 django 中找不到的东西,也不需要使用数据库。
我发现的最接近的是这篇文章。我已经实现了代码,并对其进行了相当多的简化,但事实证明 request.session 不是全局的(两个浏览器有不同的会话)。
可能是我的问题可以通过使用 request.session 以外的东西来保存启动/停止/状态状态来解决,但我不知道那会是什么。
我在阅读中遇到的另一种可能性是 django 中间件,但据此,
__init__() 只被调用一次——在服务器启动时——而不是针对单个请求
这里还有一篇博客文章讨论了 django 中的全局状态。有什么想法吗?