2011-07-01 41 views
1

我開發需要執行大量的批處理(例如域名註冊申請)的應用程序。爲了確保最佳性能,我想在不同的計算機之間分配工作。對於這一點,我打算寫一個程序,將查詢作業隊列中的主服務器上,獲取一個作業,處理它,並用結果更新主服務器。實際的處理將由PHP完成。我的程序只需要輪詢作業隊列並調用本地php腳本。工作需要每隔幾秒運行一次,因此我無法使用cron。編程語言,用於開發多平臺守護

任何人都可以提出一種編程語言,可以輕鬆地創建這樣一個守護進程?有沒有可用的程序已經做到這一點?

感謝

回答

1

的幾個注意事項

  1. 您可以使用cron來每隔幾秒鐘(使用黑客雖然)
  2. 您將需要某種形式的分佈式隊列來保存你的工作運行(RabbitMQ的是一個好的,或者你可以使用的ZooKeeper)
  3. 根據你選擇的隊列中,有API的許多編程語言從隊列中刪除作業。

有許多開源工具可以做類似的事情,但它將在很大程度上取決於您的需求有多複雜。

  1. Hadoop是一個複雜的產品,可以讓你輕鬆地實現這個
  2. workerpool是一個Python庫,使用簡單,但是這是多線程的,將運行在一臺機器。所以它只是簡單的一端。
+0

謝謝prashant。我一定會檢查提到的軟件。 如何使用cron每隔幾秒運行一次作業?最低間隔不是1分鐘? –

+1

對不起,我應該擴大。關於cron的粒度爲1分鐘是正確的,但我通常做的是如果我想每20秒運行一次,我會創建三個工作,一分鐘一個,一個睡20秒,然後運行相同的工作,一個睡了40多歲,並執行相同的工作。這是一個黑客,所以我不一定會用它來做生產質量的工作。 – manku