Previene il timeout per script di grandi dimensioni senza modificare le impostazioni di sistema

2

Opzione corrente

Se ho un processo che so potrebbe richiedere un po 'di tempo, lo sto tagliando usando ajax per fare una parte della richiesta, quindi una volta che l'ajax viene restituito fai la parte successiva della richiesta.

Questo è utile perché posso tenere traccia della percentuale completa dopo ogni ritorno di ajax, ma si basa sul browser che invia le richieste Ajax, che può ancora scadere.

Nuova opzione Theory

Penso che un modo migliore sia quello di lasciare che il codice lato server continui a eseguire l'attività senza tornare a segnalare alla GUI.

Sul lato server ho lo script che esegue tutte le attività. Tiene traccia del proprio tempo di esecuzione e prima che venga raggiunto max_execution_time genera spawn e un'altra attività (tramite cURL) ed esce.

Sul lato client eseguo un intervallo ogni secondo circa controllando il progresso (minimo script ajax).

Ciò impedirebbe lo spegnimento dello script se il browser dovesse ricaricarsi.

Per far funzionare la teoria, devo rispondere alle seguenti domande:

  1. Come puoi verificare se il tempo massimo di esecuzione è vicino?

  2. Esiste un modo migliore per ottenere questo risultato, quindi cURL?

  3. Puoi persino creare una richiesta CURL e terminare lo script senza attendere la risposta o annullare il cURL?

La vera domanda qui è:

  1. Come puoi eseguire un "processo" che durerà più del tempo di esecuzione massimo senza modificare il tempo massimo di esecuzione?
posta iambriansreed 01.03.2015 - 23:04
fonte

0 risposte

Leggi altre domande sui tag