2011-11-22 183 views
1

我有一個使用Jquery和Python的網站。如何停止Django線程

我有一個執行python函數的Ajax請求。 Python函數內部有一個與Linux執行C++庫的接口。

我遇到的問題是當我通過Python創建兩個從AJAX執行C++庫的請求時。 C++任務最多可能需要2分鐘才能加載。這很好,但是當我離開當前頁面時,由於上一個任務在技術上沒有完成,因此Django不會給我加載一個新頁面。

有沒有什麼辦法可以決定,如果頁面正在導航,如果是的話,然後調用python停止其功能,所以我可以有一些響應。

我想到的一種方法是線程,但是當我執行這種方法時,如果我在線程仍在執行時導航離開調試器,即使我不在調用請求的頁面上,它也會返回數據。

那麼有沒有人有任何想法,我可以如何讓python殺死當前頁面導航後的所有線程。

乾杯

回答

0

好像你需要爲你的「堵」 C++庫的異步執行。對於這種問題有幾種方法,但IMO線程是錯誤的...

一種方法是使用異步Web服務器,如Tornado來處理異步請求。另一個(和我更喜歡的那個)是使用Celery