Attualmente sto architettando e progettando una nuova ed entusiasmante applicazione web che entrerà in alcune aree in cui ho poca esperienza nello sviluppo del gioco.
L'applicazione non è necessariamente un gioco, ma ci sono alcune attività molto delicate e lavori programmati che un server dovrà eseguire per svolgere attività correlate al gioco (ad esempio, il nuovo match inizia a mezzogiorno ogni giorno per un torneo di 12 giorni , aggiornando i tabelloni alle 17:00 tutti i giorni, ecc ...)
In passato, in genere, ho usato cron job con il Quartz Scheduler in esecuzione all'interno di un server di applicazioni Web, ma so che questa non è probabilmente una soluzione scalabile per la base di utenti veramente massiva che la gestione mi sta dicendo di aspettarsi sono di gestione e sono probabilmente molto ottimisti su questo) e anche per quanto sia importante il ruolo di questi compiti in questa applicazione web.
L'altra cosa importante che voglio considerare è che voglio evitare SPOF (Single Point Of Failure). Se il server di lavoro primario si arresta, un altro server di lavoro dovrebbe essere in grado di eseguire correttamente il lavoro al suo posto. Suppongo che questo possa essere fatto in modo appropriato per registrare il blocco e le transazioni del database.
La mia domanda è se i lavori programmati come CRON in esecuzione su un server di applicazioni Web sono una scelta di design saggia, date le attività di gioco sensibili al tempo di questa applicazione, o c'è qualcosa di più appropriato per l'esecuzione di un motore di gioco scalabile parallelo ai server di applicazioni web ?