2010-01-20 56 views
-1

我試圖更好地理解線程。如果我創建的程序允許用戶上傳照片,然後創建一個新的程序以百種方式調整圖像大小(5秒或更長),並且主程序向用戶返回一個響應HTML頁面,說「謝謝。你完成了!「,另一個過程還可以在這一點上工作嗎?假設我正在使用多進程模塊vs GIL線程與子進程。Python/Django:在用戶看到「謝謝,你完成了!」之後,進程是否可以繼續運行?頁面

+1

您需要守護進程的子進程。在這裏看到類似:http://stackoverflow.com/questions/1504729/communicate-with-backend-job-from-web-server-or-web-page – Mark 2010-01-20 19:47:18

回答

9

考慮到消息或作業隊列是一個好主意,當你有後臺處理。這樣,您就不必編寫自己的代碼來處理作業調度,優先級等。當第一個服務器開始用盡容量時,您還可以將更多服務器添加到隊列中。有一個名爲Celery的程序包,應該提供MQ訪問Django應用程序。

就你而言,你可能會在你的頁面上創建一個動畫的'throbber',通過ajax定期輪詢服務器。圖像處理完成後,您可以更新頁面。

+0

我並不太擔心用戶看到結果是誠實。我只是擔心頁面加載時間爲10秒。我寧願頁面只需要2秒(文件上傳和基本的HTML渲染+延遲),然後棘手的sheesh稍後發生。 – orokusaki 2010-01-20 20:32:05

+0

芹菜+1 – 2010-01-20 21:15:43

相關問題