• 09-05-2021, 19:44:00
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba vertabanımda bir php dosyası oluşturara içinde değişiklikler yaptığım bi kodum vae. Anca bu çalışırken site yavaşlıyor diğer sayfalarım için. Bunun önüne nası geçebilirim ? (Dipnot : başka web sitesine de istek atmaktayım curl ile)
  • 09-05-2021, 19:46:27
    #2
    CronJob kullanmayı denediniz mi?
  • 09-05-2021, 19:52:07
    #3
    ZeynelKayhan adlı üyeden alıntı: mesajı görüntüle
    CronJob kullanmayı denediniz mi?
    Daha denemedm kullanıcam cronjobu bundan kurtulur muyum ? Yoksa dğer sayfalarım donuyo ?
  • 09-05-2021, 19:57:05
    #4
    SLKing adlı üyeden alıntı: mesajı görüntüle
    Daha denemedm kullanıcam cronjobu bundan kurtulur muyum ? Yoksa dğer sayfalarım donuyo ?
    Kodlarınızı görmeden bir şey diyemem, hangi amaç ile yazıldığını v.s. anlatırsanız yardımcı olabilirim. CronJob kullanmadığınız için her çoğul hit yavaşlığa sebep olabilir. Yavaşlığın nedenleri cUrl ile attığınız isteğin geri dönüşü olabilir, kod optimizasyonu olabilir yada her sayfada sürekli çalıştığı için olabilir.
  • 09-05-2021, 21:26:48
    #5
    Php kendi başına asenkron çalışmaz fakat exec komutuyla sunucunuzda yeni bir php servisi başlatıp işlemi bu servis üzerinden yaptırabilirsiniz. Manuel bir multi-threading işlemi gibi düşünebiliriz.
    Alıntı
    exec("/path/to/php -f '/path/to/file.php' | '/path/to/output.txt'");
    Yanı sıra bir de pthread’ı araştırmanızı öneririm, hala çalışıyor mu bilmiyorum fakat multi-threading için kullanılabileceği birçok yerde yazıyor. Tam emin olmamakla birlikte php’nin stok halinden farklı bir binary ile çalışıyor diye biliyorum.

    Bu her iki işlemi de paylaşımlı hiçbir hostingte yapamazsınız, sunucu gerektirir.
  • 09-05-2021, 23:39:02
    #6
    Bkz: https://reactphp.org/
  • 11-05-2021, 18:55:01
    #7
    Merhaba,
    php-fpm ile async işlem yapabiliyorsunuz ama her çağırdığınız instant sunucudaki kaynaklara ortak olduğundan belirli bir sayıya ulaştınızda (bu sayısı sizin aldığınız hosting veya VPS hizmeti ile belirlidir.) aynı sonuca ulaşırsınız. En sağlıklısı bir kuyruk yönetimi yapıp aynı anda çalışacak child/worker sayısını sınırlamaktır. Bir müşterimiz için async olarak 10k request için böyle bir çözüm uygulamıştık. Stage de 10 async task, canlıda ise 10k request ile sorunsuz çalıştık. Size böyle bir çözüm önerebilirim.

    symfony/messenger ile kuruk işini çözmüştük. (https://packagist.org/packages/symfony/messenger) Bu paketle ilgili anlatımlardan yararlanabilirsiniz.