AJAX: stop funzione php

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
rfringuello89
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: sab 21 feb 2009, 18:47
Nome Cognome: Renato Fringuello
Slackware: 64 current
Kernel: 3.13.3
Desktop: kde 4.12.4 [Alien]

AJAX: stop funzione php

Messaggio da rfringuello89 »

Salve a tutti, esiste un modo per fermare una funzione PHP chiamata tramite AJAX la quale ha un time_limit 0 ?
"When you know Slackware, you know Linux… when you know Red Hat, all you know is Red Hat."

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: AJAX: stop funzione php

Messaggio da ZeroUno »

Si. Un'altro file php richiamato da ajax che killa il php in corso.
Ajax è running sul tuo pc, php è running sul server. Non c'è altra via che un intermediario.

Comunque hai time_limit 0 in php.ini? Questa è una cosa che non si fa!
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
rfringuello89
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: sab 21 feb 2009, 18:47
Nome Cognome: Renato Fringuello
Slackware: 64 current
Kernel: 3.13.3
Desktop: kde 4.12.4 [Alien]

Re: AJAX: stop funzione php

Messaggio da rfringuello89 »

No setto il time limit in quella particolare funzione perchè mi serve che stia attiva fino a quando non sono io a decidere di ucciderla. Come faccio a killare il php?
"When you know Slackware, you know Linux… when you know Red Hat, all you know is Red Hat."

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: AJAX: stop funzione php

Messaggio da ZeroUno »

Ma lo script php come lo lanci? Da una pagina web? Da command line?

Se lo lanci da pagina web come logica appena l'utente preme stop questo dovrebbe morire.
Inoltre se lo script produce output c'è il problema del flushing.

In ogni caso dovresti trovare il modo di beccare il pid dello script php e poi fare un altro script php, richiamato da ajax, che fa system("kill $pid"); o simile.
Per beccare il pid puoi dare system("ps qualcosa") ma è pericoloso.
Una idea è che quando lanci lo script php (che a questo punto è chiamabile anche demone in verità) questo si segni il pid da qualche parte (tipo un pidfile) e lo script kill.php legga tale file e killi quanto indicato lì.

Comunque, come dicevo all'inizio, tutto dipende da come lanci lo script php demone.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
rfringuello89
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: sab 21 feb 2009, 18:47
Nome Cognome: Renato Fringuello
Slackware: 64 current
Kernel: 3.13.3
Desktop: kde 4.12.4 [Alien]

Re: AJAX: stop funzione php

Messaggio da rfringuello89 »

Lo script viene chiamato tramite AJAX da pagina web, stò provando a fare come mi hai detto, il problema è che non riesco a farmi rendere il pid prima che la funzione termini (e a quel punto sarebbe del tutto inutile)
"When you know Slackware, you know Linux… when you know Red Hat, all you know is Red Hat."

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: AJAX: stop funzione php

Messaggio da ZeroUno »

prova con getmypid

Non ho ben capito quello che devi fare, ma nono è una buona idea richiamare un php che debba rimanere up all'infinito da una funzione ajax perchè se l'utente preme F5 viene lanciato un secondo processo e il primo non muore.
Inoltre il browser dovrebbe rimanere in "attesa che la pagina carica" in eterno e lasci la connessione in established senza fare traffico (e con le ultime impostazioni predefinite di apache tra l'altro la connessione verrebbe killata).

Ancora di più... essendo uno script ajax a richiamarlo (e quindi javascript) dopo un po' firefox ti dirà "c'è uno script che non sta rispondendo. lo uccido?" o simile.
Inoltre, sempre soprattutto perchè è uno script ajax, è poco utile che lo script rimane running perchè ajax non può utilizzare l'output di uno script php finchè questo non termina.

E ancora... no_limit lo piazzi sul tuo pc. Nessun server di produzione al mondo avrà un timeout impostato ad infinito, per questioni di sicurezza e di stabilità della macchina.

Puoi essere più specifico su quello che ti serve?
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
rfringuello89
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: sab 21 feb 2009, 18:47
Nome Cognome: Renato Fringuello
Slackware: 64 current
Kernel: 3.13.3
Desktop: kde 4.12.4 [Alien]

Re: AJAX: stop funzione php

Messaggio da rfringuello89 »

Era una cosa concettualmente semplice e che comunque sarebbe rimasta su una rete locale, ho momentaneamente deciso di lasciare perdere perchè troppo intricato. Grazie dell'aiuto ;)
"When you know Slackware, you know Linux… when you know Red Hat, all you know is Red Hat."

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: AJAX: stop funzione php

Messaggio da ZeroUno »

Dimmi solo una cosa...
ma l'esecuzione di questo script doveva essere limitato alla durata di vita del browser?
Cioè, se chiudo il browser che dovrebbe succedere a quel processo?
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
rfringuello89
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: sab 21 feb 2009, 18:47
Nome Cognome: Renato Fringuello
Slackware: 64 current
Kernel: 3.13.3
Desktop: kde 4.12.4 [Alien]

Re: AJAX: stop funzione php

Messaggio da rfringuello89 »

Il processo termina alla chiusura del browser o quando voglio io (e.g. con un pulsante)
"When you know Slackware, you know Linux… when you know Red Hat, all you know is Red Hat."

Rispondi