如何停止Django线程

时间:2011-11-22 22:23:31

标签: javascript jquery python ajax django

我有一个使用Jquery和Python的网站。

我有一个执行python函数的Ajax请求。在Python函数中,有一个与Linux的接口,用于执行C ++库。

我遇到的问题是当我通过Python创建两个从AJAX执行此C ++库的请求时。加载C ++任务最多可能需要2分钟。这很好但是当我离开当前页面时,因为上一个任务在技术上没有完成,Django不会加载我一个新的页面。

如果页面正在导航,有什​​么方法可以确定是否可以阻止它,然后调用python来停止它的功能,这样我就可以有一些响应。

我想到的一种方法是线程,但是当我执行这种方法时如果我在线程仍在执行时导航我可以从调试器看到它​​返回数据,即使我不在调用请求的页面上。

所以有人有任何想法如何让我在离开当前页面时让python杀死所有线程。

干杯

1 个答案:

答案 0 :(得分:0)

好像你需要为你的“阻塞”C ++ Lib进行异步执行。这种问题有几种方法,但IMO线程是错误的......

一种方法是使用像Tornado这样的异步Web服务器来处理异步请求。另一个(以及我更喜欢的那个)是使用Celery