• 26-06-2020, 09:15:26
    #1
    Merhaba,

    Bir web sayfasındaki güncellenen alanları çekmek için sürekli request attığım bir php script'im mevcut.
    Sonsuz bir while döngüsü oluşturdum ve bu döngünün içerisinde url'e istek atıyorum. Yaklaşık 2-3 saniye sürüyor her bir istek.

    Bunu yaparken şöyle bir komut kullandım.
    nohup php /scripts/run.php &
    Yalnız bu job çalışırken işlemci %100'lere çıkıyor. Yanlış bir işlem mi yapıyorum? Alternatif bir çözümü var mı bu konunun?
  • 26-06-2020, 09:26:18
    #2
    Kodlarınızı görmeden yorum yapmak zor.

    While döngüsü ile sürekli isteklere bağlanıyorsanız, gözünüzün fark edemeyeceği kadar çok hızlı istek atacaktır ve doğal olarak %100 cpu kullanımı olacaktır.

    While döngüsü yerine, her dakika çalışan cron job oluşturmanız daha iyidir, her dakika güncellesin.
  • 26-06-2020, 09:32:07
    #3
    teknori adlı üyeden alıntı: mesajı görüntüle
    Kodlarınızı görmeden yorum yapmak zor.

    While döngüsü ile sürekli isteklere bağlanıyorsanız, gözünüzün fark edemeyeceği kadar çok hızlı istek atacaktır ve doğal olarak %100 cpu kullanımı olacaktır.

    While döngüsü yerine, her dakika çalışan cron job oluşturmanız daha iyidir, her dakika güncellesin.
    Söylediğim gibi while'ın içine her girildiğinde yaklaşık 3 saniye kadar kod çalışıyor(curl ile web isteği). Yani farkedilemeyecek kadar hızlı bir durum söz konusu değil. Cronjob'da kullansam yine while kullanmam lazım ki art arda istek atabileyim.

    Kodu şu şekilde düşünebilirsiniz

    while (true) {
        CurlRequest(); // 3 saniye
    }
  • 26-06-2020, 09:48:03
    #4
    cihangirk adlı üyeden alıntı: mesajı görüntüle
    Söylediğim gibi while'ın içine her girildiğinde yaklaşık 3 saniye kadar kod çalışıyor(curl ile web isteği). Yani farkedilemeyecek kadar hızlı bir durum söz konusu değil. Cronjob'da kullansam yine while kullanmam lazım ki art arda istek atabileyim.

    Kodu şu şekilde düşünebilirsiniz

    while (true) {
        CurlRequest(); // 3 saniye
    }
    Yazdığınız kodlarda sorun olmadığını düşünüyorsanız, kullandığınız hosting veya vds paketinizin işlemcisini kontrol edin
  • 26-06-2020, 09:56:46
    #5
    teknori adlı üyeden alıntı: mesajı görüntüle
    Kodlarınızı görmeden yorum yapmak zor.

    While döngüsü ile sürekli isteklere bağlanıyorsanız, gözünüzün fark edemeyeceği kadar çok hızlı istek atacaktır ve doğal olarak %100 cpu kullanımı olacaktır.

    While döngüsü yerine, her dakika çalışan cron job oluşturmanız daha iyidir, her dakika güncellesin.
    cihangirk adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Bir web sayfasındaki güncellenen alanları çekmek için sürekli request attığım bir php script'im mevcut.
    Sonsuz bir while döngüsü oluşturdum ve bu döngünün içerisinde url'e istek atıyorum. Yaklaşık 2-3 saniye sürüyor her bir istek.

    Bunu yaparken şöyle bir komut kullandım.
    nohup php /scripts/run.php &
    Yalnız bu job çalışırken işlemci %100'lere çıkıyor. Yanlış bir işlem mi yapıyorum? Alternatif bir çözümü var mı bu konunun?

    Katılıyorum, arkadaşın dediği gibi cron job ile tetikleyin, sonsuz döngüden kaçınmalısınız,,,

    Normal döngüleri ve işlemleri yapın, ne kadar süre sürüyorsa bir miktar üstüne cron job periyot kurun, benimde kişisel görüşüm bu yönde,
    Kolay gelsin
  • 27-06-2020, 02:55:31
    #6
    3 Saniye süren kod bloğun nedir
  • 27-06-2020, 03:01:23
    #7
    Sadece meraktan soruyorum, sonsuz döngü yerine dakikada bir kere tetiklenerek 20 kere dönecek bir döngü neden kullanmıyorsunuz da sonsuz döngü başlatıyorsunuz? İşleminiz 3 saniye sürüyorsa zaten her dakika 20 kere dönsede, sonsuz döngüye alsanızda 20 işlem yapmayacak mı 1 dakika içerisinde?