• 23-07-2023, 23:12:19
    #1
    Merhabalar, 1 adet PHP json botumuz mevcut, bu bot her 5 dakikada bir çalışıyor ve truncate işlemi ile tüm tabloyu silip 1 saniye içinde tekrar ekliyor, fakat botun calistigi sırada siteye giren olursa sitede veriler gözükmüyor bunu nasıl çözebiliriz?

    not: bunu yapmamızın sebebi şu sürekli anlık yeni veriler ekleniyor ve bu verilerin bazılarının süresi 5 dakikada doluyor o yüzden çözüm arıyoruz.
  • 23-07-2023, 23:15:34
    #2
    Cronjob memory'i şişiriyordur diye düşünüyorum. O yüzden anlık erişim sorunu oluyordur. Ya verileri parça parça kontrol edip sildirteceksiniz ya da farklı bir taske böleceksiniz. ilk yöntem en temizi olur.
  • 23-07-2023, 23:17:44
    #3
    fatbotter.com
    Transaction Kullanımı: Veritabanında truncate işlemi gerçekleştirmeden önce bir transaction (işlem) başlatın. Transaction içinde truncate işlemini gerçekleştirin ve yeni verileri ekleyin. İşlem tamamlandığında, transactionı ya başarılı bir şekilde tamamlayın ya da geri alın. Bu, truncate işleminin yarım kalmamasını ve siteye erişim sırasında verilerin eksik görünmemesini sağlar.

    try {
        // Transaction başlat
        $pdo->beginTransaction();
    
        // Tabloyu temizle
        $pdo->exec("TRUNCATE TABLE my_table");
    
        // Yeni verileri ekle
        // ...
    
        // İşlemi tamamla
        $pdo->commit();
    } catch (PDOException $e) {
        // Hata durumunda işlemi geri al
        $pdo->rollBack();
        echo "Hata oluştu: " . $e->getMessage();
    }
    Kaynak: ChatGPT
  • 23-07-2023, 23:21:23
    #4
    Merhaba, teşekkürler lakin her dakikada 50 tane veri ekleniyor bunlari parça parça silersem önceki içerigin süresi dolanlar sitemde çalışmıyor zaten bunun için çözüm arıyorum 5 dakikada bir eski içeriklerin kaldirilmasi şart gibi yani.
  • 23-07-2023, 23:21:51
    #5
    veritabanından verileri direk çekmek yerine memcached ya da redis gibi bir önbellek sistemi kullanmanız gerekir. eğer sildiğiniz eklediğiniz veri sayısı çok fazla değilse 1000 ve altı, bir json dosyasını da önbellek gibi kullanabilirsiniz.