Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 07-06-07, 22:14   #1 (permalink)
User Attivo
 
L'avatar di probid
 
Data di registrazione: Aug 2006
Ubicazione: Foligno (PG)
Messaggi: 1,822
Invia un messaggio tramite MSN a probid
[Script] Utilizzare cron senza account di root

In php.net c'è uno script che permette di simulare la funzione cron eseguibile da linux soltanto avendo accesso al server come root.
Questa funzione permette di effettuare operazioni php ad un determinato orario,es. backup del db.
Per chi non avesse i privilegi amministrativi (per esempio se si ha un sito hostato da AV o da Netsons,e simili) c'è invece questo script che secondo me è utilissimo.
Codice PHP:
<?php 
ignore_user_abort
(); // funzione per far continuare l'esecuzione dello script anche dopo la chiusura della pagina
set_time_limit(0); // funzione per far continuare lo script all'infinito
$interval=60*15// ogni 15 minuti...
do{ 

// funzioni da svolgere ogni 15 minuti


   
sleep($interval); // funzione per attendere 15 minuti dopo l'intervento
}while(true); 
?>
Fatene buon uso!
Ciao!
__________________
Moderatore in pensione
probid non in linea   Rispondi citando
Vecchio 08-06-07, 12:50   #2 (permalink)
Esperto
 
L'avatar di olaola
 
Data di registrazione: Jan 2007
Ubicazione: Bologna
Messaggi: 704
buono a sapersi, solo mi chiedevo: per attivare lo script devo entrare nella pagina che contiene questo codice, giusto? E se entro in tale pagina piu' di una volta, attivo piu' volte questo cron?

non so' se sono stato spiegato
olaola non in linea   Rispondi citando
Vecchio 08-06-07, 18:14   #3 (permalink)
User Attivo
 
L'avatar di probid
 
Data di registrazione: Aug 2006
Ubicazione: Foligno (PG)
Messaggi: 1,822
Invia un messaggio tramite MSN a probid
Si devi accedere alla pagina,e ogni volta che lo fai il timer riparte.
Per esempio se uno accede alla pagina alle 17.00 l'esecuzione la volta successiva avverrà alle 17.15,poi alle 17.30.
Se uno però visita di nuovo la pagina alle 17.02,le future esecuzioni saranno alle 17.17 e alle 17.32

Forse io ho capito la tua paura,quella che un utente visiti la pagina azzerando il timer.
Ho avuto anch'io la stessa preoccupazione
Potresti risolvere però mettendo un parametro get nascosto che avvii l'applicazione in questo modo:

Codice PHP:
 <?php 
if ($_GET[action]=="avvia_timer"){
ignore_user_abort(); // funzione per far continuare l'esecuzione dello script anche dopo la chiusura della pagina
set_time_limit(0); // funzione per far continuare lo script all'infinito
$interval=60*15// ogni 15 minuti...
do{ 

// funzioni da svolgere ogni 15 minuti


   
sleep($interval); // funzione per attendere 15 minuti dopo l'intervento
}while(true); 
}
else{exit();}
?>
Ora l'esecuzione avverrà soltanto se alla querystring della pagina richiamata viene aggiunto:

"action=avvia_timer"

In alternativa si può creare un login da amministratore che stabilisce una sessione e svolgere l'operazione solo se a sessione stabilita

Se invece vuoi creare più timer puoi costruire un file per ogni operazione da svolgere e avviarli...


Ciao!
__________________
Moderatore in pensione
probid non in linea   Rispondi citando
Vecchio 27-09-07, 18:07   #4 (permalink)
User
 
L'avatar di Bazzilla
 
Data di registrazione: Jul 2007
Messaggi: 45
Interessantissima chicca.

Perdonatemi però la domanda banale: se io chiudo il browser dopo avere lanciato la pagina in questione, le funzioni non verranno più svolte vero?
Bazzilla non in linea   Rispondi citando
Vecchio 27-09-07, 21:40   #5 (permalink)
MZ
Moderatore
 
L'avatar di MZ
 
Data di registrazione: Jun 2005
Ubicazione: Lecce-Torino
Messaggi: 509
Grazie Probid, lo segnalo nella raccolta dei thread utili, sarebbe un peccato perderlo.

__________________
MZ non in linea   Rispondi citando
Vecchio 01-10-07, 20:17   #6 (permalink)
Esperto
 
L'avatar di olaola
 
Data di registrazione: Jan 2007
Ubicazione: Bologna
Messaggi: 704
Quote:
Bazzilla Visualizza il messaggio
Interessantissima chicca.

Perdonatemi però la domanda banale: se io chiudo il browser dopo avere lanciato la pagina in questione, le funzioni non verranno più svolte vero?
no, continueranno a girare, perche' e' presente questa istruzione
Codice PHP:
ignore_user_abort(); // funzione per far continuare l'esecuzione dello script anche dopo la chiusura della pagina 

Ultima modifica di olaola : 01-10-07 20:24.
olaola non in linea   Rispondi citando
Vecchio 02-10-07, 11:32   #7 (permalink)
User
 
L'avatar di Bazzilla
 
Data di registrazione: Jul 2007
Messaggi: 45
Quote:
olaola Visualizza il messaggio
no, continueranno a girare, perche' e' presente questa istruzione
Codice PHP:
ignore_user_abort(); // funzione per far continuare l'esecuzione dello script anche dopo la chiusura della pagina 
Mi era sfuggita quella istruzione (che tra l'altro non conoscevo).
Grazie per l'osservazione.
Bazzilla non in linea   Rispondi citando
Vecchio 02-10-07, 12:05   #8 (permalink)
User
 
Data di registrazione: Jul 2005
Messaggi: 181
Quote:
olaola Visualizza il messaggio
no, continueranno a girare, perche' e' presente questa istruzione
Codice PHP:
ignore_user_abort(); // funzione per far continuare l'esecuzione dello script anche dopo la chiusura della pagina 
Quindi per far interrompere l'esecuzione cosa bisogna fare ? Riavviare il server ?

Ciao
__________________
Livescore
Dragone67 non in linea   Rispondi citando
Vecchio 02-10-07, 12:57   #9 (permalink)
Esperto
 
L'avatar di olaola
 
Data di registrazione: Jan 2007
Ubicazione: Bologna
Messaggi: 704
Intervengo per correggere un errorino nello script proposto di cui mi sono accorto leggendo la pagina della documentazione della funzione ignore_user_abort.
Tale funzione, chiamata senza argomanti, restituisce solo lo stato attuale delle impostazioni. Per attivarla bisogna chiamarla con
Codice PHP:
ignore_user_abort(TRUE); 
olaola non in linea   Rispondi citando
Vecchio 02-10-07, 13:52   #10 (permalink)
User
 
Data di registrazione: Sep 2007
Messaggi: 31
bella e utile questa chicca!
xò mi unisco alla domanda di dragone67!
Per interrompere lo script quindi bisogna riavviare il server?
se così fosse una volta avviato uno script in un server esterno che non si è un grado di controllare (es. aruba) non si potrebbe più fermare?
oppure semplicemente si cancella la pagina e stop?
scusate, magari è una stupidaggine ma sono stanco oggi, non riesco a ragionare

grazie
ciao ciao
desu non in linea   Rispondi citando
Vecchio 02-10-07, 14:03   #11 (permalink)
User
 
L'avatar di Bazzilla
 
Data di registrazione: Jul 2007
Messaggi: 45
Quote:
desu Visualizza il messaggio
scusate, magari è una stupidaggine ma sono stanco oggi, non riesco a ragionare
Male comune...:sonno:
Bazzilla non in linea   Rispondi citando
Vecchio 05-10-07, 13:10   #12 (permalink)
User
 
L'avatar di Bazzilla
 
Data di registrazione: Jul 2007
Messaggi: 45
Quote:
desu Visualizza il messaggio
Per interrompere lo script quindi bisogna riavviare il server?
se così fosse una volta avviato uno script in un server esterno che non si è un grado di controllare (es. aruba) non si potrebbe più fermare?
oppure semplicemente si cancella la pagina e stop?
La questione però interessa anche a me: come si ferma lo script?

Proverei da solo, ma non ho PHP in locale.
Bazzilla non in linea   Rispondi citando
Vecchio 16-10-07, 02:46   #13 (permalink)
User
 
Data di registrazione: May 2006
Messaggi: 42
mi associo...

come si fa ad interrompere l'esecuzione dello script?

grazie... ottimo 3d
Ares non in linea   Rispondi citando
Vecchio 17-01-08, 14:18   #14 (permalink)
User
 
Data di registrazione: May 2006
Messaggi: 42
Smile

scusate se rompo...

ma qualcuno sa come interrompere l'esecuzione del cron una volta avviata?

grazie anticipatamente
Ares non in linea   Rispondi citando
Vecchio 29-01-08, 02:57   #15 (permalink)
Banned
 
Data di registrazione: Jan 2008
Messaggi: 246
non ne sono certo ma se
Quote:
ignore_user_abort(TRUE);
non permette di interrompere l'esecuzione a questo punto basta eliminare quella riga uppare nuovamente far ripartire l'esecuzione e chiudere il browser
tifo-milan.it non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 20:19.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.