Bir php script hala çalışıyorsa edin

3 Cevap php

Ben bir jabber sunucuya dinler ve buna göre tepki veren bir komut dosyası var. Bunu durdurmak gerekiyordu değil rağmen, dün gece yaptım. Şimdi bir cron işi komut çalıştıran olup olmadığını kontrol etmek her dakika çalıştırın ve eğer değilse başlamak istiyorum.

Soru bir senaryonun hala çalışıyorsa nasıl kontrol edebilirim, nedir?

Bazı çözümler here yazılmadı, ama ben bir Windows çözüm arıyorum ise bu, Linux için tüm vardır. Herhangi bir fikir lütfen? Teşekkürler.

3 Cevap

Komut CURRENT_TIMESTAMP bir tarih sütun seti ile bir veritabanında bir satır güncellemek için hızlı ve kirli bir çözüm olabilir. Bu satırın damgası son ise cron ikinci komut kontrol var.

İşte ben genellikle ne var:

  1. Bir durum dizin oluşturmak, ör: / data / durumu /
  2. on my script, have it check if status file is exists
    1. Bu, çıkış komut dosyası var eğer
    2. mevcut değilse, işlemi devam

Ancak, bir sorun bu var: komut ölür ve ne eğer durum dosyayı kaldırmak değil mi?

Biraz böyle kontrol kaydedebilirsiniz ekleyebilirsiniz:

  1. Her dakika, durum dosyayı güncelleştirmek
  2. Durumu dosya son güncelleme örneğin ise her cron başlangıç ​​için, kontrol edin: 10 veya 30 dakika önce biz cron senaryoyu başlayabilirsiniz (bizim cron komut ölmek olduğunu varsayabiliriz).

Ben aynı sorunu vardı ve ben bu kod ile çözüldü:

file_put_contents("status.txt","ping");

Benim komut dosyası döngü içine koydum

bu yüzden, ben komut etkin olup olmadığını görmek için dosyanın son değiştirilme tarihini kontrol edin

Eğer böyle bir şey yapabilirsiniz HD aşırı değil:

$i++
if( $i%100 == 0)
    file_put_contents("status.txt","ping");

Bu dosyayı yazacağız zaman $ i == 100 veya 200 veya 300 vs ..

Bu geçici bir çözüm olduğunu