如何停止Django线程

How to Stop Django Thread

本文关键字:线程 Django 何停止      更新时间:2023-09-26

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

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

我遇到的问题是,当我创建两个请求通过Python从AJAX执行这个c++库时。c++ Task的加载时间可能长达2分钟。这是很好的,但是当我从当前页面导航,因为以前的任务还没有完成,Django不会加载我一个新的页面。

是否有任何方法可以确定页面是否正在导航,如果是,然后调用python来停止其功能,以便我可以有一些响应。

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

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

欢呼

似乎您需要异步执行您的"阻塞" c++库。有几种方法可以解决这类问题,但我认为线程是错误的…

一种方法是使用像Tornado这样的异步web服务器来处理异步请求。另一个(也是我更喜欢的一个)是使用芹菜。