2011-11-22 141 views
1

我有一个使用Jquery和Python的网站。如何停止Django线程

我有一个执行python函数的Ajax请求。 Python函数内部有一个与Linux执行C++库的接口。

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

有没有什么办法可以决定,如果页面正在导航,如果是的话,然后调用python停止其功能,所以我可以有一些响应。

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

那么有没有人有任何想法,我可以如何让python杀死当前页面导航后的所有线程。

干杯

回答

0

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

一种方法是使用异步Web服务器,如Tornado来处理异步请求。另一个(和我更喜欢的那个)是使用Celery