• 28-11-2013, 13:04:43
    #1
    Üyeliği durduruldu
    Merhaba Arkadaşlar

    CronJobs İle 1 Dakikadan Aşarı Bildigim Kadarı İle Dosya Zamanlanamıyor.

    Bir Yolunu Bilen Varmı Acaba Bunun
    Yada Php İle Nasıl Bİr Dosyayı Her saniye çalıştırabilirim.
  • 28-11-2013, 13:13:10
    #2
    Bildiğim kadarıyla direk her saniye çalıştıramıyoruz. Ben loop ile yapıyorum. Dosyayı dakikada bir kere çalıştırıyorum ve her çalışmasında 1er saniye aralıklarla 60 defa benim istediğimi yapıyor


    set_time_limit(60);
    for ($i = 0; $i < 59; ++$i) {
    
        // islemler burada
        sleep(1);
    }
  • 28-11-2013, 15:01:08
    #3
    sayfa surekli açık mı kalacak yoksa çalışması tamamen sunucu tarafında mı olacak
  • 28-11-2013, 15:03:56
    #4
    mtn adlı üyeden alıntı: mesajı görüntüle
    Bildiğim kadarıyla direk her saniye çalıştıramıyoruz. Ben loop ile yapıyorum. Dosyayı dakikada bir kere çalıştırıyorum ve her çalışmasında 1er saniye aralıklarla 60 defa benim istediğimi yapıyor


    set_time_limit(60);
    for ($i = 0; $i < 59; ++$i) {
    
        // islemler burada
        sleep(1);
    }
    arkadaşın verdiği loop örneği en mantıklı olanıdır fakat unutmayın bir işlem bitmeden diğer işleme geçmediği için 60 değilde saniyeyi 50 civarına çekmek daha iyi olacaktır yoksa sonraki cron işlemini atlayacaktır çinki daha diğeri bitmemiş olacağından.
  • 28-11-2013, 16:18:24
    #5
    burada loop en mantıklısı ama meraktan soruyorum nasıl bir işlem yaptıracaksınız.
  • 28-11-2013, 21:42:50
    #6
    Üyeliği durduruldu
    uysal_rockci adlı üyeden alıntı: mesajı görüntüle
    burada loop en mantıklısı ama meraktan soruyorum nasıl bir işlem yaptıracaksınız.
    ileri tarihli bir veri girme sistemi yapıyordum

    ileri tarihli girdigim verilerdeki tarih ile şimdiki zamanı yıl ay gün saat dakika saniye olarak karşılaştırıp herşeyi tam zamanlı aktif olan tabloya taşımak için kullancaktım yani.

    bunun için cron her saniye çalışması gerekiyordu.

    fakat tarih ve sorguları biraz değiştirerek olayı çözdüm

    $simditarih = substr(date("Y-m-d H:i:s"),'0',-3);
    $yazitarih = substr($Haber['detail_date'],'0',-3);
    
     if($simditarih == $yazitarih) 
                {
    gibi sorgulayarak saniyeleri kaldırdım cron dakikalık çalıştıgından işimi gördü yani zaten veriyi taşımada herhangi bir değişiklk olmuyor aynı saniyesine kadar taşıyor.

    mevcut dakika içinde çalışması yeterli yani
  • 28-11-2013, 21:54:48
    #7
    tam zmanlı olmasına ne gerek var ki eğer sitenin hiti yüksek ise ileri zamanlı yaparsın o zamandan 1 sn sonra bile girilse o konuyu günceller giren kimse yoksa onunda pek bir önemi olmaz.. arama motorları dersen motorlar sunucuna giriyorsa zaten ondada yeni konuyu ekleyecektir... cron job biraz bana mantıksız geliyor bu açıdan
  • 28-11-2013, 22:16:09
    #8
    Üyeliği durduruldu
    asimavi50 adlı üyeden alıntı: mesajı görüntüle
    tam zmanlı olmasına ne gerek var ki eğer sitenin hiti yüksek ise ileri zamanlı yaparsın o zamandan 1 sn sonra bile girilse o konuyu günceller giren kimse yoksa onunda pek bir önemi olmaz.. arama motorları dersen motorlar sunucuna giriyorsa zaten ondada yeni konuyu ekleyecektir... cron job biraz bana mantıksız geliyor bu açıdan
    hocam sql deki veriyi

    örnegin
    2013-11-28 22:13:09

    bu veriyi

    şimdiki tarih saat dakika sanye vs karşılaştırıp tam zamanlı yayınlamak için kullanacaktım

    fakat cron daha mantıklı geldi ve her dakika çalışsın dakikaya kadar eşitlik olsun yeterli diye substr ile saniyeyi es geçtim yani.

    saniye okadar önemli değil yani ama yinede ögrenmiş olduk
  • 28-11-2013, 22:49:07
    #9
    cron çok fazla cpu kullanıyor sıkıntı o yüzden