2012-05-28 42 views
0

只是一個簡單的問題,一直困擾着我今天。我擁有五臺服務器,全部具有完全相同的映像,並在負載均衡器後面運行。我想每隔半小時在這些服務器上運行一個過程繁重的cron。Crons for Clusters

我不想把cron放在每臺機器上,因爲它佔用大量資源,會阻塞所有傳入的連接30秒。另外,我並不是真的想把cron放在一臺機器上,只是爲了確保它是多餘的,並且可以運行。

我可能的解決方案是使用遠程服務來運行cron,只需訪問一個可觸發它的URL;我認爲這是最可行的。

我真的很好奇可以使用其他解決方案。

謝謝你的時間!

回答

1

您可以在5臺機器上設置交錯的cron作業,因此每5臺機器每2.5小時運行一次。可能最乾淨的方法是安排一項工作每30分鐘運行一次,並將工作本身作爲有條件運行的腳本,具體取決於當前的時間和所在的機器。

或者,如果您有某種批處理調度系統,則可以在提交批作業的一個系統上運行cron作業,讓調度系統選擇要使用的服務器。這具有如下優點:假設批處理系統正常工作,如果其中一臺服務器關閉,該作業仍應運行。您可能需要在您的cron作業中設置一些環境變量,以使其正確使用批處理系統。

+0

關於驚人的偉大的觀點,謝謝! – Jonathan