我需要2個(或者3個)連續運行Ruby中程序的「方面」 - 一個通信線程,一個呈現線程和一個緩存線程。線程或DRb?
想法是呈現線程顯示幻燈片放映(其定義從文件中讀取)並且通信線程從遠程HTTP服務器檢索所有幻燈片。渲染必須是連續的,沒有停止(因此可能需要緩存)。該文件可能會在程序生命週期中發生變化,因此需要重新解析(即時)。
我想在「方面」之間發送消息,例如當通信線程獲取整個「章節」的節目時,呈現線程可能會在等待整個節目下載之前啓動,例如,等等上。
我應該使用Ruby線程還是DRb?我如何在線程之間傳遞消息?
感謝您的任何反饋!
我只考慮,因爲通過能力消息的DRb - 我不能與線程,對吧?我的意思是,我可以用互斥體破解它,但它仍然是一個黑客......對不對? :) DRb似乎更容易。 – 2009-08-28 14:00:53
如果您需要多個進程,您只需要一個消息傳遞系統。這聽起來不像你需要多個進程,因此我建議保持簡單。我正在做一些類似於自己的事情(收集遠程數據,處理它並呈現輸出),並且一個簡單的線程系統會很好 - 我爲每個階段和一個附加線程都有一個線程 - 不需要DRb。但使用你認爲你需要的東西! 祝你好運! – 2009-08-29 14:33:00
恕我直言,RabbitMQ建議是正確的方法。我之前用DRb和RabbitMQ做過這種事情,而DRb解決方案並不理想。 RabbitMQ的速度要快幾個數量級,如果你使用的是Celldee的Bunny庫,它也容易得多。 – 2009-09-27 01:37:00