Zaman tabanlı php script

4 Cevap php

Ben bir php komut dosyası çalıştırmak işlevi ItsTime () her saat istiyorsanız söyleyin. Ben bunu nasıl yapabilirim sunucusunda bir cron işi kurma dışında?

Php scriptler koştu için açılması gerekir, çünkü ya da bu mümkün değil mi?

Teşekkürler.

EDIT: Ben bir günlük dosyasına bazı bilgileri yazmak istiyorum ve bazı değişkenlere bağlı olarak bir e-posta gönderebilirsiniz.

4 Cevap

Eh, kesinlikle amaç için cron işi öneririz. Ama teorik olarak, bir PHP komut dosyası çalıştırmak itstime(), bir saat uyku, ve döngü olabilir. Bu olsa da, oldukça çılgın.

Komut dosyası gibi görünecektir:

<?php
include('whatever.php');
while(true) {
    itstime();
    sleep(3600);
}
?>

Bir muhtemelen nohup php mycrazyscript.php &, terminale ayırmak ve onu çalıştıran tutabilir yapmak, ve pkill -f mycrazyscript sonlandırmak için kullanmaya ile çalıştırmak istiyorum.

Bu çılgınlık nedeni artık her saat üzerinden 59 dakika boyunca hiçbir şey yapmadan etrafında asılı bir uyku PHP süreci var olduğunu ve emin hem çalışan ve cron alacağını her ikisi de doğru zamanda, koşma yapmak zorunda sizin için bakım.

Sadece kaos 'cevap ekleyerek, bu yüzden ona kredi vermek.

mrlanrat - bkz this

Eğer cron erişim yok, ama orta derecede meşgul web sunucusuna erişiminiz yoksa, sizin işlevi her saat tetiklemek için kullanabilirsiniz. Bu WordPress cron'u gerek etrafında alır nasıl. İşte bunu nasıl bulunuyor:

<?php
$lastrun = get_last_run_time(); // get value from database or filesystem
if( time()-$lastrun > 60*60 ) {
  itstime();
  set_last_run_time(time()); // write value back to database or filesystem
}
// The rest of your page
?>

Tabii ki, olduğu gibi bu kod oldukça ciddi bir yarış durumu var. Çözme ki okuyucuya bir egzersiz olarak bırakılmıştır.

https://www.setcronjob.com/ ve various other sites, bunun için bir web tabanlı bir çözüm sağlar. Bunu da kodu ile bir php komut dosyası aramak için o kadar ayarlayabilirsiniz istediğiniz her saat ya da her neyse

<?php
  itstime();

?>