• 24-03-2010, 13:21:09
    #1
    Yeşil SEO İnt. Hiz.
    php de saniye de maksimum x kez fonksiyon çalıştırmak istiyorum. kendim denedim ama sonuç alamadım.

    kod mantığı şu şekilde olması lazım




    if(saniyede maksimum x kez çalıştırma kodu){
    
    fonksiyon();
    
    or die()  //x sayısını geçerse fonksiyonu öldürmemiz lazım. 1 saniye geçip tekrar çalışırsa iyi olur.
    }
    şimdiden teşekkürler..
  • 24-03-2010, 13:46:43
    #2
    Üyeliği durduruldu
    zaman hesabi yapmaniz gerekiyor ilk başta. sleep komutu ile kodlari bekleterek islem yapabilirsiniz
  • 24-03-2010, 13:46:54
    #3
    for($i=0;$i<$calistirmakistenensayi;$i++){
    cagirfunction();
    }

    bitti (:
  • 24-03-2010, 13:54:15
    #4
    Yeşil SEO İnt. Hiz.
    trdeveloper adlı üyeden alıntı: mesajı görüntüle
    for($i=0;$i<$calistirmakistenensayi;$i++){
    cagirfunction();
    }

    bitti (:

    mükemmelsin üstadım..
    msn de daha iyi açıkladın..
    yardımcı olması açısından diğer arkadaşlara

    function calistir(){
    
    for($i=0;$i<20;$i++){
    
    ///yapilacak islemler
    
    
    }
    sleep(1);
    return calistir();
    
    }
  • 24-03-2010, 14:06:00
    #5
    staticiation adlı üyeden alıntı: mesajı görüntüle
    mükemmelsin üstadım..
    msn de daha iyi açıkladın..
    yardımcı olması açısından diğer arkadaşlara

    function calistir(){
    
    for($i=0;$i<20;$i++){
    
    ///yapilacak islemler
    
    
    }
    sleep(1);
    return calistir();
    
    }
    bu nasıl bir method ya return da string/bool/array/int/float/double gibi değişken tipleri döndürebilirsin eğer o çalıştırı döndürmeye çalışırsan sonsuz bir döngüye girer 30 sn sonra timeout verir ek olarak konu sleep kullanmaya gerek yokki saniyede demişsin zaten for a koydugun zaman işlemleri anlık işliyor sleep fonksiyonu sadece betiğin çalışma süresini geciktirir
  • 25-03-2010, 09:13:53
    #6
    Üyeliği durduruldu
    RedZ adlı üyeden alıntı: mesajı görüntüle
    bu nasıl bir method ya
    rekürsif olmayan rekürsif fonksiyon olmuş. yığın taşana / stack overflow olana kadar calisir. sonra durur
  • 25-03-2010, 09:18:49
    #7
    Yeşil SEO İnt. Hiz.
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    rekürsif olmayan rekürsif fonksiyon olmuş. yığın taşana / stack overflow olana kadar calisir. sonra durur
    aslında sorun tam olarak bu değildi. daha doğrusu ben anlatamadım

    örnek üzerinden anlatayım...
    mesela 100k hitli bir sitemiz var. sayfalar her açıldığında

    include('footer.php');
    footer dosyası çalışıyor. hostgator da malum aynı saniyede 25 dosya çalıştırma sorunu var. ben footer dosyasını saniyede 25 den fazla çalışmasının istemiyorum.. 20 defa çalışsın ondan sonra 1 saniye boyunca çalışmasın, ondan sonra tekrar çalışmaya devam etsin..
    sanırım imkansız bi şey bu



    bazı fonksiyonlarla buna bi ayar çekilmesi lazım sanırım
    include('footer.php');
  • 25-03-2010, 09:44:29
    #8
    Üyeliği durduruldu
    staticiation adlı üyeden alıntı: mesajı görüntüle
    bazı fonksiyonlarla buna bi ayar çekilmesi lazım sanırım
    include('footer.php');
    böyle bir durum için cache mekanizmasina geçmeniz lazim hocam. direk bu şekilde çözümleyemezsiniz.bu şekilde yaklaşımla her dosya bekleme yapmış olur sayfanin acilmasi gecikir. ama toplam orana baktiginizda toplam talep eden sayi degismedigi icin ayni kapiya cikmis olur