Puoi "spezzare" l'elaborazione in più fasi appoggiandoti alle sessioni o creando una coda di elaborazione nel database.

In alternativa, puoi utilizzare Ajax per richiedere l'esecuzione "a pezzi" dal client.