Attualmente sto usando qualcosa come un server master-cron, che avvia le attività sui server slave-worker.
Ma ci sono così tanti compiti che i tempi vengono persi del tutto.
Esiste un algoritmo che elimina il singolo master?
Potresti pensare di usare un framework per eseguire le tue attività cron
in questo modo. Ciò che viene subito in mente è Capistrano . È un framework rubino per le distribuzioni, ma il principio generale è che è possibile connettersi alla macchina remota tramite SSH ed eseguire comandi arbitrari in modo transazionale.
Quindi potresti avere una master box che ha capistrano installato e da lì puoi configurare un cron-task per eseguire il tuo script capistrano che farà SSH nelle altre macchine e poi eseguirà il comando che vorresti eseguire come cron . Potresti anche configurare cose come tirare la copia più recente dello script da un repository Git e poi eseguirlo in modo che la distribuzione degli aggiornamenti di script sia semplicissima.
Puoi anche scrivere le tue estensioni per Capistrano per fare varie cose. L'unico svantaggio è che devi familiarizzare con il framework e imparare / sapere Ruby per essere davvero efficace con esso.
Aggiorna
Ho appena capito cosa stavi chiedendo e la mia risposta non risolve quel particolare problema. Tuttavia, puoi ancora utilizzare la tecnologia per risolvere il tuo problema gestendo le distribuzioni multi-server con Capistrano. Piuttosto che avere una relazione mastser-slave, basta che ogni server esegua i propri compiti. Capistrano dovrebbe occuparsi della distribuzione di script nuovi o aggiornati e dovrebbe fare in modo che il problema di manutenzione di avere tutti i server esegua i loro compiti scomparendo.
Leggi altre domande sui tag distributed-computing