- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Script] Utilizzare cron senza account di root
-
ignore_user_abort(TRUE);
eliminala e quando chiudi la pagina si blocca tutto
-
ho provato...
ho levato tutto e anche riavviato il pc ma continuo a ricevere email, ci vorrebbe una funzione php per eliminare i demoni o simili....
ps:grazie comunque.
-
se riavvi il pc è strano che continui a funzionare, a meno che non hai il server (apache) che si avvia all'avvio di windows.
-
No io non ho apache.
non ho nessun server locale.comunque ho lanciato quel comando su REGISTER... se ti può essere utile.
-
se non hai nessun server dove fai i test?
direttamente online?
se lo fai direttamente online se non sbaglio dovrebbero riavviare i provider il server altrimenti non lo bloccano
neanche se cancelli il file
-
Sembra che sia riuscito ad interrompere le email
facendo:ignore_user_abort(FALSE);
Ciao e grazie
-
ma quando ti ho detto di toglierla hai avviato nuovamente lo script?
se no il problema era quello perchè a me ha funzionato
-
ciao a tutti!
davvero utile questo "trucco"!mi è sorta una domanda: questo tipo di script è pesante per il server?
cioèignore_user_abort(TRUE); // funzione per far continuare l'esecuzione dello script anche dopo la chiusura della pagina set_time_limit(0); // funzione per far continuare lo script
non comportano un rallentamento del server?
ciao!
-
no se fatto in un lasso di tempo acettabile
-
grazie mille della risposta...
ho un ultimo dubbio... se il fornitore di hosting non permette set_time_limit(0);
non c'è nessun modo per far funzionare questo "trucchetto"?ciao e grazie!
-
all'80% no per mia insicurezza però...
però non credo che gli Hosting non lo permettano...
-
che figata
questa me la segno
grazie
-
segnati anche questa
giorgiotave.it/forum/php-mysql/79572-ogni-15-minuti-php-mi-manda-un-email-non-so-come-interrompere.htmlcosì non torni a piangere anche tu sul forum
-
Scusate ancora,
come faccio a mettere più cron nella stessa pagina php? Ovviamente un cron ha un tempo di intervallo e un altro cron un altro tempo di intervallo. Come faccio?
-
vediamo...:?
allora, mettiamo che tu non voglia appoggiarti a un db, prendiamo l'array come input:
$crons = array([INDENT]array("nome"=>"cron1", "intervallo"=>"5", "ultimaesecuzione"=>"09:00", "funzione"=>"func1()"),
[/INDENT][INDENT] array("nome"=>"cron2", "intervallo"=>"15", "ultimaesecuzione"=>"09:00", "funzione"=>"func2()")
)
[/INDENT]while(true){[INDENT]foreach($crons as $cron){
[/INDENT][INDENT][INDENT]if(sonopassati($cron['intervalli'])minuti da $cron['ultimaesecuzione']) {[INDENT]eval( $cron['funzione']);
$cron['ultimaesecuzione'] = oracorrente;
[/INDENT]}
[/INDENT]}
sleep $N; //N deve essere minore del minimo fra gli intervalli dei cron
if(file_exists("stoppaicron.stop")) exit;
[/INDENT]}considera l'ora tarda ... potrei aver scritto una marea di frottole
-
Salve a tutti, trovo anch'io molto utile questa funzione, ma se dovessi avviare un cron, una volta sola al giorno e ad un'ora specifica... come posso fare?
Io uso dolphin, e avrei bisogno di far funzionare circa 5 cron, ma il mio host non supporta il cron job...
Tra questi cron, 2 devono partire solo una volta al giorno e solo ad una certa ora...
Ringrazio tutti...
-
trovo molto interessante questo cron, ma ho provato in tutte le maniere a fermarlo, sia quelle descritte da voi che leggendo altri post in cui si faceva riferumento a files esterni. Il risultato non cambia...una volta avviato, arrivano messaggi in continuazione, l'unico modo per fermarlo è chiudere il server o riavviarlo. Grazie a Dio ho fatto tutte le prove in locale altrimenti avrei dovuto aspettare che il mio provider riavviasse il server, cosa che non fanno tanto facilmente.
Se qualcuno ha da proporre qualche altra soluzione al problema sarei felice di testarla.
-
Ciao mephjl,
la soluzione migliore è fare un controllo nel ciclo con file_exists in modo che sia sufficiente creare il file per interrompere l'esecuzione dello script.
-
ho provato anche così, forse ho sbagliato, ti posto il codice :
ignore_user_abort(true);
set_time_limit(0);
$interval=606024; //una volta al giorno
do{
if(file_exists("fermati.stop")) exit;
// funzioni da svolgere ogni 60 minutisleep($interval); // funzione per attendere
}while(true);Se ho capito bene : se non c'è un file nella root che si chiama fermati.stop lo script va avanti, se c'è si dovrebbe fermare non appena richiamo la pagina.
Non funziona.
-
Non in root, ma nella stessa cartella dello script.