Cron kullanarak, Seferinde bir PHP Script yalnızca bir örneğini izin Sorun olması

0 Cevap php

Ben bunu anlamaya görünüyor olamaz.

Ben (varsa kontrol eder, içeriği, vb) benim sunucuda belirli dosyaları doğrular bir validator-tipi komut dosyası var. Ben bunun sadece bir örneği değil, daha sürekli çalıştırmak istiyorum. Ben geçerli çözüm ben (belki diğer nedenler) zaman aşımı nedeniyle tahmin ediyorum, çalışmak için görünmüyor. Ben doğrulamak her dosya için, ben 60 saniye php zaman aşımını ayarlayın. Ben script üstünde bu var:

    $trigger_file2 = 'path/to/a/randomfile';

    if (file_exists($trigger_file2)){
        //another script is working, exit
                exit;
    }

    // create file inside app
    $handle = fopen($trigger_file2, 'w');
    fwrite($handle, '0');
    fclose($handle);

Yazısının sonunda, ben sadece tetikleyici dosya üzerinde bir unlink () kullanın. Nedeniyle olası zaman aşımları, ve muhtemelen diğer nedenlerle, tetikleyici dosya daima silinir almıyor ve sorunlara neden oluyor. Ben de tetikleyici dosya değiştirildiği zaman denetler kodu ekleyerek denedim, ve daha eski 10 dakikadır, silinir, ama sorun genellikle oluşur olarak bu, gerçekten verimsiz.

Herhangi bir bu almak için nasıl bir fikir? Ben çalışan komut PID'lerine ile bir şey yaptığını düşündüm, ama (bence) index.php kullanıyor gibi bu yüzden her işlem görünüyor, komut dosyası için CakePHP'ye kullanıyorum.

Başka bunu nasıl fikir? Yardım derece mutluluk duyacağız.

0 Cevap