2010-06-08 16 views
2

我正在開發一個系統,隊列中將填充數百萬個項目Python的Twisted庫是觀察者類型模式的最佳情況嗎?

我需要一個從隊列中持續讀取項目並將這些項目發送給註冊客戶端的進程。

我正在考慮爲此使用twisted,讓隊列讀取器是一個扭曲的服務器,監聽TCP端口,然後客戶端可以連接到該端口,並且當一個項目從隊列中拉出時,服務器將其寫入所有客戶。

這聽起來像是扭曲的東西會是理想的嗎?有沒有人知道有可能做類似的任何示例代碼?

回答

1

Perspective Broker可能是你在找什麼。如果你不知道PB,可以把它看作XML-RPC,但更多。您可以調用遠程過程(duh!),傳遞大部分python對象來命名兩個。

對於您的情況,爲客戶提供PB。 Twisted Server可以調用遠程doWork(myItem, myParameters)。扭曲的服務器將是一個持久的進程運行,將隊列中的項目累積起來。如果您擁有數百萬(或甚至是服務器數十個)項目,請記住在發生崩潰時正常恢復。如何隨時隨地將東西智能地備份到磁盤上,並在啓動時讀取這些內容?

+0

嗨,傑夫,扭曲的服務器將實際上將東西從像beanstalkd持久隊列。我會看看經紀人,謝謝! – James 2010-06-09 15:21:01

1

你可能想考慮RabbitMQ,一個AMQP消息代理。 AMQP是一種旨在構建消息傳遞排隊和路由系統的協議。

several,python,clients連接到AMQP經紀人。