Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30

Discussione: simulazione cron

  1. #1
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    simulazione cron

    buogiorno a tutti!!

    Spulciando in php.net ho trovato questo interessantissimo script che potrebbe essere utilissimo a tante persone riguardo la funzione cron().

    per poter accedere a questo tipo di funzione si sa non è possibile farlo se non quando si è proprietari del server in cui viene ospitato il dominio.

    ma qiando si è in hosting con un manteiner tipo aruba, altervista o altro?

    ecco il codice postato in un commento sull utilizzo di ignore_user_abort()


    autore:
    If you want to simulate a crontask you must call this script once and it will keep running forever (during server uptime) in the background while "doing something" every specified seconds (= $interval):

    Codice PHP:
    <?php
    ignore_user_abort
    (); // run script in background
    set_time_limit(0); // run script forever
    $interval=60*15// do every 15 minutes...
    do{
       
    // add the script that has to be ran every 15 minutes here
       // ...
       
    sleep($interval); // wait 15 minutes
    }while(true);
    ?>
    cosa ne pensate? sinceramente non ho avuto il piacere di provarlo ancora...

    e per bloccarne l' esecuzione a piacere?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    perfetto l' ho testo e funziona egregiamente in localhost

    rimane il discorso di come fermare l'esecuzione dello script a piacimento
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    e se a quel while fai verificare una variabile di sessione?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    bhè, per fermare lo script quel "true" deve diventare "false". E' lo stesso problema di chi, in java, deve uscire dal run di un thread. Lo script che andrai ad eseguire (o il ciclo while stesso) sarà arricchito di un po' di logica per gestire la situazione:

    codice:
    ...
    $flag = true;
    do {
      ...
      ...
      sleep($interval);
      if (condizione_di_arresto) {
        $flag = false;
      }
    } while ($flag);
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    supponiamo che il mio script sia in start.php , lo lancio chiudo il browser e lui cicla, cicla, cicla ecc. ... l' anno successivo , devo fare manutenzione e devo stopparlo....

    lo script ovviamente è in memoria, quindi non ne ho + accesso diretto, teoricamente dovrei essere il manteiner che stoppa e riavvia apache scaricando tutti i processi in memoria...

    andrea suggerisce il flag true o false, e fin qui era quasi ovvia la cosa. Ma se la condizione è esterna al ciclo?

    se volessi fare un file stop.php e dichiarassi $flag=false; ?

    verrebbe presa in considerazione dal mio ciclo cron ?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Quell'if che ho messo è volutamente vago perché lo devi implentare tu. La condizione e' esterna? Puoi anche fare una query che verifica se la pseudo cron debba ancora essere eseguita, oppure verificare l'esistenza o meno di un file di "lock" in una posizione ben definita sul server, oppure while(time() < tempo_tuo_limite)... insomma, ti stai rompendo la testa per trovare la soluzione ad un problema che non esiste, a mio modo di vedere.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    giusto hai ragione

    un file di lock oppure una query al db .. un bug nel cervelletto mi ha impedito di pensarci ...

    supponiamo invece che il manteiner debba per motivi suoi stoppare e riavviare il server o semplicemente apache, io vorrei verificare se il mio pseudo cron sia attivo, è possibile ciò?

    potrei magari utilizzare un file di lock, che ad ogni ciclo del pseudo cron lo cancella e ricrea.
    ad ogni accesso alla home verifico la sua data di creazione e se è troppo distante dall' intervallo scelto nel cron chaima sart.php e lo esegue.. può funzionare??
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  8. #8
    Originariamente inviato da dottwatson
    perfetto l' ho testo e funziona egregiamente in localhost

    rimane il discorso di come fermare l'esecuzione dello script a piacimento
    ho detto una vaccata, non ho pensato all'eventualità tu volessi chiudere proprio il browser il che è ovvio se vuoi lasciarlo eseguire in background
    va beh, è la fame non è che c'è qualche script per far cuocere prima la lasagna?

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da dottwatson
    giusto hai ragione

    un file di lock oppure una query al db .. un bug nel cervelletto mi ha impedito di pensarci ...

    supponiamo invece che il manteiner debba per motivi suoi stoppare e riavviare il server o semplicemente apache, io vorrei verificare se il mio pseudo cron sia attivo, è possibile ciò?

    potrei magari utilizzare un file di lock, che ad ogni ciclo del pseudo cron lo cancella e ricrea.
    ad ogni accesso alla home verifico la sua data di creazione e se è troppo distante dall' intervallo scelto nel cron chaima sart.php e lo esegue.. può funzionare??
    c'è da chiedersi: che cosa succede quando fermo e riavvio un server su cui abbia a disposizione cron() nativamente? Penso che non ci sia di che preoccuparsi, tanto se il server è fermo la cron non verrebbe eseguita (indipendentemente dalla natura della stessa)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da satinrouge
    [...] c'è qualche script per far cuocere prima la lasagna?
    Quella pre-cotta, ci schiaffi su tanta besciamella e ragù e te la cavi in qualche decina di minuti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.