2011-02-14 23 views
5

我目前正在計劃一個Web應用程序,它需要永久性地監聽一個打開的套接字並將指定的內容寫入數據庫。Django/Flask Implentation:永久監聽通過HTTP或Socket的連接。 (在後臺)

爲了讓燒瓶(我選擇的框架)和python知道我一般想用twitter-streaming-api來玩。

基本問題是一樣的。如何爲這兩種連接實現一個永久的「連接 - 監聽器」?

以下建議的方式是最好的方法嗎?

tweepy Streaming API integration with Django

我有點不喜歡來實現機器上的系統守護進程的想法。

編輯:當然我想通過HTTP爲用戶提供服務。所有這些應該是非阻塞的...

謝謝!

回答

5

如果您希望系統是非阻塞的,那麼Flask或Django都不會本機提供您正在尋找的支持。你應該看看Twisted,因爲它是最成熟的非阻塞IO的python項目:http://twistedmatrix.com/trac/

它爲基於套接字的服務器提供了一組可靠的API。如果你需要整合一個「常規」web應用程序,你最好的選擇應該是Django,因爲我不相信有人做過Twisted-Flask集成(我可能是錯的,只是沒有看到它)。這裏有一個鏈接解釋在同一環境中如何安裝Django和扭曲:http://dreid.org/2009/03/twisted-django-it-wont-burn-down-your.html/

注:無需系統守護進程;對於開放式插座基於事件的行動)

+1

感謝您的鏈接。 (Django + Twisted-Integration)。我之前就知道扭曲了,但從來沒有嘗試過,因爲總是聽說它是陡峭的學習曲線。 我想我會嘗試燒瓶整合,因爲燒瓶是100%wsgi兼容的,鏈接似乎只是使用扭曲的wsgi處理程序。我們會看到。 據我瞭解,webapp(django/flask)將以syncronous/blocking-mode(不是asnync,magic monkeypatch-thing)運行嗎? – crushervx 2011-02-14 11:43:11