Gå til innhold

Windows; Kjøre ett PHP script konstant?


Anbefalte innlegg

Hei, jeg lurte på no, hvordan får jeg ett PHP script til å kjøre konstant?

 

Altså hvis en endring skjer som scriptet skal håndtere så skjer det umiddelbart?

 

Jeg har en veldig teit løsning nå, en bat fil som kjører PHP scriptet en gang i døgnet, liker ikke løsningen og lurer på om det finnes en bedre og raskere løsning?

Lenke til kommentar
Videoannonse
Annonse

Skulle hatt litt innsikt i HVA det er skriptet gjør :p

Windows er vell generellt ikke så greit å ha med å gjøre når det gjelder å jevnlig kjøre ting, men du kan gjøre selve skriptet om til at det selv kjører kontinuerlig med en while (1) {} loop.

Hva er det scriptet skal gjøre?

Lenke til kommentar

Skulle hatt litt innsikt i HVA det er skriptet gjør :p

Windows er vell generellt ikke så greit å ha med å gjøre når det gjelder å jevnlig kjøre ting, men du kan gjøre selve skriptet om til at det selv kjører kontinuerlig med en while (1) {} loop.

Hva er det scriptet skal gjøre?

 

Okey har to ting, en som skal sjekke om ett tall i databasen er mine enn time() og hvsi den er slette raden og ett som skal sjekke en annen database etter endringer og hvis det er sjedd endringer skal det overføres til en annen database (nei ikke synkronisering)

 

Jeg har begynt og lure på om jeg skal prøve å lage det i perl istede, men vil helst høre om det er noen mulighet for å få det kjørt i php.

Lenke til kommentar

Hmm... må jo bli noe slikt ish (for det som skal slette):

<?php

while (1) {
 $sql = "SELECT * FROM databasen WHERE date < '".time()."'";
 $res = mysql_query($sql);
 if (mysql_num_rows($res) > 0) {
   while ($row = mysql_fetch_assoc($res)) {
     $sql = "DELETE FROM databasen WHERE id='".$row['id']."'";
     mysql_query($sql);
   }
 }
 usleep(10000000); //Hvert tiende sekund
}

?>

 

dette skriptet vil kjøre kontinuerlig og sjekke med 10 sekunders mellomrom.

Lenke til kommentar

Du kan kjøre set_time_limit(0); i begynnelsen dersom timeout blir en issue. Men jeg tror ikke timeout er et issue når du kjører i PHP CLI.

Hvordan ser taskmanager ut på prosessen når du kjører den? Jeg vil tro den benytter veldig lite systemressurser.

Lenke til kommentar

Hva med å bruke en trigger?

 

Francis

 

Det var ingen dum idé, men jeg har aldri rørt det før :p

 

Lurer på om noe slik jeg prøver å fremstille i denne koden ville fungert?

 

CREATE TRIGGER vip_admin
FOR EACH ROW
BEGIN

IF vip_to < unix_timestamp(now()) THEN
eval("C:/xampp/php/bin/php.exe -f C:/phpscript.php");
END IF
END;

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...