Come si scrive uno script PHP che continua a essere eseguito, anche dopo aver svuotato del testo e terminato la richiesta HTTP? È possibile?Uno script PHP può continuare a essere eseguito dopo aver terminato la richiesta HTTP?
risposta
Per eseguire PHP app per sempre o fino a quando termina php
ignore_user_abort(true);
set_time_limit(0);
sembra pericoloso se la pagina viene richiesta frequentemente, il server potrebbe avere un numero elevato di processi che non stanno facendo nulla. – rsman
potreste essere interessati dalla direttiva di configurazione ignore_user_abort
, e/o la funzione ignore_user_abort
:
Imposta se una disconnessione client dovrebbe causare uno script per essere interrotta.
Usando questo, si potrebbe:
- generare la parte della pagina che deve essere inviato al browser
- a filo l'uscita, con
flush
e/oob_flush
- chiamata
ignore_user_abort
(ora o prima) - fare altri lavori
Il browser dell'utente probabilmente indicherà ancora "in attesa" o "caricamento", ma il contenuto della pagina verrà caricato e visualizzato e, anche se l'utente preme "stop", lo script dovrebbe continuare la sua esecuzione.
Per maggiori informazioni, non v'è un esempio nella pagina del manuale di quella funzione - e si può dare un'occhiata a questo articolo: How to Use ignore_user_abort()
to Do Processing Out of Band
Naturalmente, mentre questo può essere utilizzato per un certo processo di luce (come "ripulire" la roba alla fine di una pagina, mentre lo visualizzi il più velocemente possibile per l'utente), sarai comunque limitato da max_execution_time
e simili.
Quindi, questa non è una soluzione da utilizzare per calcoli lunghi/pesanti.
- 1. shutdown PC dopo aver terminato uno script
- 2. Uno script PHP può indurre il browser a pensare che la richiesta HTTP sia terminata?
- 3. Come mantenere la finestra della shell aperta dopo aver eseguito uno script PowerShell?
- 4. Come viene eseguito esattamente uno script PHP?
- 5. Che cosa può far continuare a funzionare Java dopo System.exit()?
- 6. cd Terminal in una determinata directory dopo aver eseguito uno script Python?
- 7. cancella() dopo aver eseguito remove_if()
- 8. Come continuare il processo dopo aver risposto ad una richiesta jax in PHP?
- 9. Getting stdout da un sottoprocesso tcpdump dopo aver terminato lo
- 10. Come rimuovere la tastiera dopo aver terminato un'attività?
- 11. Come accedere all'intestazione HTTP della richiesta in uno script CGI?
- 12. Può uno script bash indicare se viene eseguito tramite cron?
- 13. Lo script PHP non può essere emesso dallo script Python
- 14. Richiesta HTTP SOAP PHP
- 15. risolto: MAMP Php non può essere eseguito ('convert') dopo l'installazione di Homebrew ImageMagick
- 16. Sistema bloccato dopo aver eseguito javascript durante la notte
- 17. uno script python può essere eseguito sia con python 2.x sia con python 3.x
- 18. Cosa significa essere "terminato da uno zero"?
- 19. Dopo aver avviato un progetto e aver improvvisamente trovato una nuova competizione, come convincerti a continuare?
- 20. Traduci PHP PUT richiesta HTTP a ColdFusion
- 21. Uno script PHP può abortire da solo o rilevare l'aborto?
- 22. Come continuare un test della strumentazione Android eseguito dopo l'eccezione?
- 23. come inviare valore attraverso l'intento dopo aver terminato un'attività
- 24. Redirect qualsiasi richiesta GET a un singolo script php
- 25. Uno script PHP può eseguire codice comune prima di exit()?
- 26. Come continuare l'esecuzione del programma anche dopo aver lanciato un'eccezione?
- 27. Problema che esegue python/matplotlib in background dopo aver terminato la sessione ssh
- 28. Android: mostra brindisi dopo aver terminato l'applicazione/attività
- 29. Come posso ottenere un file ".command" per Mac per uscire automaticamente dopo aver eseguito uno script di shell?
- 30. comando script php linea non viene eseguito
Vedere la risposta da [Processi PHP Sfondo] (http://stackoverflow.com/questions/265073/php-background-processes) – drfloob