La soluzione di eyen è la più corretta ma è incompleta.
Il modo giusto per effettuare un trig, ovvero scatenare un evento in certe condizioni, senza appesantire (troppo) l'elaborazione, è effettuare in ogni pagina (del browser...cioè a ogni cambio pagina o ogni evento ajax) una chiamata con register_shutdown_function.
A questa funzione devi solo passare la funzione da eseguire o, meglio, un array composto dalla classe instanziata e dalla funzione da chiamare. Per esempio
In questo modo, al termine del normale flusso di elaborazione, ovvero DOPO aver "buttato fuori" l'output, header compresi, php continua ad eseguire qualcosa ma in modalità, diciamo, "background".Codice PHP:
$functions = new func_taskmanager();
register_shutdown_function( array( &$functions, 'run_task') );
Nella tua funzione run_task dovrai poi fare tutti i controlli del caso per evitare doppie triple quadruple ecc esecuzioni dello stesso task (un flag boolean 1-0 nella tabella dei task dovrebbe essere sufficiente) ed eseguire le operazioni che ti servono, come appunto controllare se qualche operazione di aggiornamento deve essere eseguita eccetera.
Se queste register_shutdown le inserisci in una unica classe che instanzi sempre è ancora meglio, così le gestisci tutte da un'unica classe e in modo più semplice.
Il modo che ti suggerisce invece virus, per quanto non scorretto in toto, è preferibile non usarlo perchè non è detto che sul server che ti ospita tu possa usare i cron (soprattutto se il sistema è windows).
![]()