• Bannato User Attivo

    hai richiamato la pagina dopo la modifica? se si, stoppa apache, se sei su un server online, non preoccuparti prima o poi lo riavveranno 😄 o ti cancellano l'account... questo non è il modo corretto di fare i cron.


  • User Attivo

    :arrabbiato: ho richiamato la pagina dopo la modifica, ma niente, il sito è online, ora mi devo trovare con una mail ogni quarto d'ora... e meno male un quarto d'ora, non di meno 😄


  • Bannato User Attivo

    come va?continuano ad arrivare?:D
    volevo aggiungere una possibile soluzione al problema, per chi volesse adottare questo sistema per mettere in cron dei task, consiglio di inserire all'interno del codice un controllo su una risorsa esterna in maniera tale che da fuori riuscite a fermare lo script, quindi all'interno del do { .... } while(true) inserirei un controllo del tipo se esiste sul db un record del tipo "fermati" allora exit, oppure se esiste su FS un file "fermati.stop" allora exit.

     <?php 
    $m = 15; 
    
    ignore_user_abort(trur); 
    set_time_limit(0); 
    do { 
    
    if(file_exists("fermati.stop")) exit;
    
    mail("[email protected]", "Prova ogni ".$m." minuti", "Prova della mail ogni ".$m." minuti", "From: Prova mail"); 
    
    
    sleep($m*60); 
    } 
    while(true); 
    ?>  
    

  • User Attivo

    Posso fare così?

    [php]<?php
    $m = 15;

    ignore_user_abort(false);
    set_time_limit(0);
    do {

    if($_GET['comando'] == "stop") { die(); }

    mail("[email protected]", "Prova ogni ".$m." minuti", "Prova della mail ogni ".$m." minuti", "From: Prova mail");

    sleep($m*60);
    }
    while(true);
    ?>[/php]

    Così se visito la pagina così: pagina.php?comando=stop si ferma?

    Grazie,
    Ciao...


  • Bannato User Attivo

    scusa, questo discorso del modificare lo script e rilanciarlo, così come quello detto da te sopra non sta né in cielo né in terra.
    Mettiamo tu abbia la tua bella homepage.php e segue la regola che dici sopra, se io entro con homepage.php?comando=stop tutte le persone che stanno vedendo l'homepage non la vedono più??
    Direi di no, tutte le volte che si lancia un script php lo stesso gira in un contesto diverso (tranne per il fatto che può pescare dati da contesti comuni quali file e/o database).
    Ti risulta che quando io farò vedi anteprima di questo post tutti quelli che stanno scrivendo un post vedono la mia anteprima? 😉


  • User Attivo

    No, aspetta, non hai capito, la pagina non è la home page, ma una pagina in un'area protetta con htaccess. Solo che vorrei sapere se c'è un modo oltre a stoppare apache/php (che non posso farlo) per interrompere l'esecuzione di quella pagina... c'è un modo?

    Grazie,
    Ciao...


  • Bannato User Attivo

    Un modo c'è ed è quello che ti ho spiegato con tanto di codice; prima che tu chiedessi se va bene passare un parametro (comando=stop) che invece non funziona.
    Siccome capisco che è macchinoso dover mettere un file (fermati.stop) via ftp tutte le volte che si vuole stoppare un processo, puoi benissimo farti un'altra pagina (fermacron.php) che crea il file, così non ti serve altro che chiamarla per fermare il cron.
    In alternativa usi il db e ci salvi l'informazione che ti dice se il cron deve girare o deve stopparsi.

    PS:
    il discorso sull'homepage era solo un esempio per farti capire che tutte le volte che chiami una pagina php è un processo a se, non ha senso il fatto di richiamare lo stesso file per fermarlo passandogli un parametro, fermeresti il processo che crei in quel momento e non quello lanciato dalla chiamata precedente.

    PS2:
    ho riletto la tua domanda, NON puoi fermare la pagina lanciata ieri, quanto detto prima vale per uno script nuovo fatto da zero con i sacri crismi.


  • Moderatore

    Manda una mail all'hoster e spiegagli il problema, penso sia l'unica soluzione.


  • User Attivo

    @redsector said:

    Manda una mail all'hoster e spiegagli il problema, penso sia l'unica soluzione.

    Li ho contattati ma mi hanno detto che non possono riavviare un server web su richiesta del cliente 😞

    Mi trovo con 96 email al giorno, tanto arrivano diritte diritte nella posta indesiderata 😄

    Ciao...


  • User Attivo

    Scusate il doppio post, comunque hanno riavviato il server! Non mi arrivano più mail ogni quarto d'ora, però devo stare attento a non rilanciare lo script 😄

    :gthi: