In realtà ove possibile per quanto non proprio ortodossa, la soluzione di Virus_101 attualmente è la più corretta.
register_function_shutdown registra un funzione comune a qualsiasi script da eseguire per l'appunto durante l'evento di shutdown cioè un attimo prima della fine dell'esecuzione della chiamata. 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.
Consiglio o cron (che non mi piace) o in alternativa l'utilizzo di timer MySQL (assunto che si stia usando tale database) oppure per i più audaci la soluzione più adatta che è l'utilizzo di un job server tipo gearman.