2010-09-02 43 views
0

我有一個python webapp,它通過POST接受一些數據。被調用的方法可能需要一段時間才能完成(30-60s),所以我想「背景」該方法,以便我可以用「處理」消息響應用戶。關於使用變量背景任務的建議?

的數據是相當敏感的,所以我不希望使用任何基於隊列的解決方案。我還希望確保在web應用程序以任何方式失敗時,後臺方法不會中斷。

我首先想到的是到餐桌的過程,但我不能確定如何傳遞變量的過程。

我用Gevent之前,它有一個方便的方法:gevent.spawn(function, *args, **kwargs)。有什麼可以在流程級別使用的嗎?

任何其他意見?

+2

我不明白以下內容:「該數據是相當敏感的,所以我不希望使用任何基於隊列的解決方案。」隊列有什麼問題?如果你在惡意機器上運行,排隊是你最擔心的問題。 – katrielalex 2010-09-02 15:01:55

+1

這樣做的方法絕對是使用消息隊列(rabbitMQ和celary是兩個)。您可以在與您的Web應用程序相同的機器上運行其中的一個。正如Katrielex所說,在線程中做這件事沒有任何安全性好處。 – 2010-09-02 15:26:02

回答

1

最簡單的方法是使用a thread。將數據傳遞給線程Queue

+1

沒有隊列!你不能讀這個問題嗎? – habnabit 2010-09-02 15:04:19

+1

我希望我的諷刺探測器不壞-_- – 2010-09-02 15:26:36

+2

我是一個人的人!我很善於與人打交道!地獄與你無關! – jathanism 2010-09-02 16:10:49