Esecuzione continua di uno script

1

Attualmente sto lavorando ad uno script PHP che riceve e-mail inviate ad un indirizzo specifico e risponde in base al loro contenuto. Funziona alla grande, ma ora ho bisogno che venga eseguito ogni 10 secondi. Ecco cosa ho provato a realizzare:

  • Uso di un cron job impostato tramite cpanel. Funziona, ma anche se uso > dev / null 2 > & 1 ottengo tonnellate di log nella cartella radice del mio spazio Web, anche se non ci sono errori; inoltre, l'intervallo minimo tra due esecuzioni è di 1 minuto, e sto cercando qualcosa di più veloce
  • Utilizzando il seguente codice:

    while(true){
        //my code
        sleep(10);
    }
    

Ma sembra non funzionare dopo alcuni minuti.

Quale metodo potrei usare?

    
posta Stubborn 22.04.2015 - 18:07
fonte

1 risposta

1

Meglio tardi che mai ???

Rendere cron eseguendo uno script PHP più spesso di 1 minuto non è una possibilità o una soluzione pratica che dovresti esplorare.

Ho avuto un progetto simile che richiedeva il polling veloce di un obiettivo per aggiornare un database con nuovi dati. La soluzione per me era creare un demone PHP. Ci sono un sacco di tutorial su come scrivere un demone PHP, quindi non entrerò nello specifico.

Il mio è stato in grado di eseguire ogni secondo per eseguire il polling di una fonte HTTP. Questo database veniva a sua volta interrogato ogni secondo da uno script Python per aggiornare un grafico su un piccolo schermo. Nota, la fonte e il polling erano sulla stessa rete locale. Se stai accedendo a qualcosa di più lontano, dovresti considerare chiaramente il round trip e il tempo di elaborazione quando imposti il timer di sonno Daemon. Puoi semplicemente dormire / controllare la presenza di e-mail / trasmettere / dormire, ecc. All'interno di un singolo script PHP da riga di comando piuttosto che usare inutilmente cron.

L'esecuzione di un Damon garantisce inoltre che più script PHP non funzionino contemporaneamente, come nel caso dell'esecuzione rapida del cron job. Ho usato un secondo script per controllare lo startup / status / restart / shutdown dello script PHP Daemon.

So che questa non è una risposta esatta con esempi, ma sembra che tutto ciò di cui avevi bisogno era una direzione da prendere. Sulla base della mia esperienza, credo che questo ti porterà dove devi essere. Come menzionato nei commenti ci sono cose da considerare sull'esecuzione di un processo di polling su un server, ma questa è una questione di pratica che puoi tenere a mente man mano.

    
risposta data 14.12.2017 - 21:15
fonte

Leggi altre domande sui tag