Ik ben op zoek naar de volgende oplossing en weet niet hoe ik dit moet aanpakken.
Ik laat een backup script draaien. Na afloop komt de pagina met eventuele meldingen. Tijdens de backup is het scherm blank. Dit duurt enige tijd.
De gebruiker wil ik laten weten dat hij moet wachten en ik wil voorkomen dat hij denkt dat het systeem hangt.
Hoe kan ik dat het best aanpakken?
Is het een backup op gezette tijden of een export op afroep? In het eerste geval zou je ook kunnen overwegen om deze in te plannen (en automatisch uit te laten voeren) via een cronjob.
Bij het opstarten van de homepage wordt aan de hand van de datum in een tabel gekeken of er een backup gemaakt moet worden. Als dat zo is wordt het backup script gestart. Probleem is dat dan de pagina blank blijft tot de backup klaar is. Dit duurt even maar de gebruiker denkt dat de zaak 'hangt' omdat er geen melding op krijg dat de backup bezig is. Als ik dat voor elkaar krijg zou mijn probleem zijn opgelost.
Er is sprake van twee processen, het uitvoeren van het uploadproces, en het bekijken van de upload-status.
Heb je beide scripts al?
Je kan een script met exec uitvoeren, en daarin met & ervoor zorgen dat het op de achtergrond wordt uitgevoerd:
exec("php backup.php > /dev/null &");
Ik raad dit alleen af als je een shared hosting hebt, want als het script vastloopt, of in een loop draait, dan kan je het zelf niet zomaar 'killen'. In vele gevallen wordt exec ook wel eens geblokkeerd, en dan loop je tegen een groot obstakel aan.