我正在解決可能的問題體系結構。儘可能少的話,問題是:我需要設計一個系統,允許客戶端使用HTTP/REST進行連接以啓動長時間運行的進程。每個進程將創建到第三方服務器的持久連接,並將接收到的數據寫入隊列。每個進程只有在第三方服務器關閉連接或收到另一個HTTP/REST請求表明應該終止的情況下才會終止。使用REST接口構建多線程應用程序
約束和背景:
- 客戶端必須能夠使用HTTP/REST連接
- 系統必須用Python編寫的
我是一個較低的C級的傢伙(有足夠的Python經驗來感受能力),但是試圖將我的頭圍繞可用於使這更容易的Python框架。我的直覺就是跳入雜草,我知道如果我按照自己的想法來實施這項工作,那麼我可能已經用C寫過了。不想那麼做。我想盡可能多地利用Python的框架和庫。性能不是重中之重。
途徑,我認爲:
在做研究,我碰到來扭轉這可能是一個合適的,似乎意義,我(想這是一個守護進程)。我想象最終產品將是一個Twisted應用程序,它公開一個REST接口,爲每個接收到的客戶端請求分派連接到第三方服務的新線程,並管理自己的線程池。我很熟悉線程,儘管他們還沒有在Python中做過任何事情。簡而言之,Twistedlooks very cool,儘管最後,我仍然想知道我是否過於複雜。
第二種方法我認爲是使用芹菜和瓶,只是讓芹菜處理所有的調度,線程管理等我發現這篇文章顯示Celery and Flask很好地玩在一起。這看起來很像一個更簡單的方法。
寫在這之後,我傾向於用芹菜和瓶的第二個選擇,雖然我不知道很多關於芹菜,所以找你可能有任何建議,以及其他可能的體系結構我不考慮。我非常感謝,並提前謝謝你。
要主持人:什麼?雖然我理解基於意見的問題,比如「什麼語言更好,C#或Java?」或者「我應該在哪裏放大括號?」沒有堆棧溢出的地方,我高度和強烈不同意這個問題,這個問題提出了一個有關軟件架構的合理問題,符合基於意見的問題。 – 2014-10-03 14:46:51