Raketenwilli: php-Script alle 5 Minuten / Nimm ein Flagfile statt zu murksen

Beitrag lesen

Was soll denn die Umrechnung in die lokale Zeit bringen? Ich denke, Dir geht es um die Vermeidung von Performanceleaks?

$flagFile = '/path/to/file.flag';
$tBetween = 300; # Sekunden


$ft = filemtime( $flagFile );
if ( false === $ft  || $ft + $tBetween < time() ) {

    if ( ! touch( $flagFile ) ) {
        trigger_error( "Konnte Flagfile $flagFile nicht anlegen oder ändern.", E_USER_ERROR );
    }
    
    # was auch immer Du tun willt
}

→ Wenn seit dem letzten Durchlauf mehr als 5 Minuten rum sind wird Dein Zeug gemacht.

  • Von dem anderen Zeug lass die Finger.
  • filemtime ist „billig“, weil es allenfalls nur den inode lesen muss, nicht die Datei selbst.
  • touch ist billig, weil es nur den Inode neu schreibt, nicht die Datei selbst. Den Rest besorgt (hoffentlich) der Dateisystemcache.