Originariamente inviato da _debo
In altri termini tale funzione NON viene eseguita in background ma per ultima. In un contesto MMO è l'equivalente di un disastro di dimensioni epocali.
Assolutamente no.

Quella di virus ha un "buco" tra una esecuzione di cron e l'altra e non è controllabile...è il server che decide quando eseguire il cron, non più il gioco (a meno di fare un sacco di bruttissime cose che dal punto di vista della sicurezza sono una boiata assoluta, come concedere una shell all'utente del webserver....)

La soluzione register_shutdown invece, per l'utente è come fosse in background perchè ha già ricevuto tutto l'output a browser, inoltre non è influenzata dall'interruzione utente (click su STOP o disconnessione, che puoi controllare con connection_aborted() e connection_status()) e anzi ne trae vantaggio potendo essere eseguita successivamente.

Se i controlli di esecuzione sono fatti bene, cioè subito all'inizio della funzione, alla fine si tratta probabilmente di una massimo due query aggiuntive quando non si deve eseguire la funzione e se gli algoritmi da eseguire sono fatti bene il carico è davvero minimo.

Ho un forum con 2000 utenti contemporanei al minuto e una serie di pseudo-cron (invio email di notifica di risposte a una discussione, invio di mail per messaggi privati, funzioni che elaborano gli RSS, un browser game eccetera) e non si è mai verificato un singolo ritardo o timeout o carico eccessivo del sistema.

Resta inteso che è impensabile fare per esempio dei download con questo metodo o delle elaborazioni grafiche piuttosto che delle elaborazioni SOAP complesse, ma se le funzioni, le query e tutto il resto è ben programmato, le register_shutdown sono l'ideale.