2012-05-23 55 views
0

我有一個程序需要大約1秒的時間才能運行,並將一個文件作爲輸入併產生另一個文件作爲輸出。問題是我必須能夠每秒處理大約30個文件。要處理的文件將作爲隊列(通過memcached實現)提供,並且不必按順序處理,因此基本上程序的一個實例會檢出要處理的文件並執行此操作。我可以使用一個進程管理器,在系統資源可用時自動啓動程序的實例。自動管理一個進程的多個實例

在簡單的一端,「系統資源」將僅僅意味着「一次最多兩個進程」,但是如果我移動到另一臺機器上,則可能是2或10或100等。至少,我可以使用一個實用程序來處理這個問題。而在複雜的一端,我希望在CPU可用時啓動另一個進程,因爲這些機器將專用。 CPU時間似乎是約束資源 - 程序不是內存密集型的。

什麼工具可以完成這種過程管理?

回答

0

風暴 - 不知道更多的細節,我會建議Backtype Storm。但這可能意味着對當前代碼進行全面重寫。 :-)

更多細節在Tutorial,但它基本上需要工作元組並通過工作節點的拓撲分佈它們。 「噴口」將工作發佈到拓撲中,而「螺栓」是圖中進行一些工作的步驟/任務。當螺栓完成它的工作時,它會將相同/新的元組返回到拓撲中。螺栓可以並行或串聯工作。