linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] Processi php

Francesco francesco a gibilogic.com
Lun 3 Nov 2014 17:34:20 UTC
Il 03/11/2014 15:28, Marco Manenti ha scritto:
> (...)
> Ora: ho limitato il più possibile l'accesso allo script php ma ogni
> tanto, soprattutto se gli utenti caricano tanti file contemporaneamente
> (oppure pochi file ma con tante pagine) apache si arrabbia.
>
> Soluzione: è possibile utilizzare una sorta di "coda" per l'esecuzione
> di script php?

Risposta breve: è possibile, consiglio PHP CLI + Supervisord.

Risposta dettagliata

La soluzione ideale a un problema come il tuo è l'elaborazione in 
modalità asincrona. Ovvero:

* l'utente carica il file e poi il suo lavoro è finito (la pagina web 
dice "Il tuo file è stato caricato e verrà elaborato a breve") - in 
questo modo l'utente non deve attendere

* uno script php eseguito via CLI sempre in esecuzione (o schedulato 
ogni pochi minuti) effettua il lavoro successivamente - via CLI, 
l'esecuzione è molto più veloce dato che non c'è Apache in mezzo ai maroni

Nota: sconsiglio un cron che esegue l'applicazione ogni minuto o giù di 
li, consiglio invece un PHP sempre in esecuzione (ciclo infinito, con i 
controlli del caso).

Per "demonizzare" il processo consiglio Supervisord.

--
Franz







Maggiori informazioni sulla lista Lug