Konuyu araştırdım bulamadım.
Anasayfaya bir ziyaretçi girer, tetikleme yapar ve Uzaktan XML verilerin tarihini okur.
Tarih Veri tabanı ile aynı değilse otomatik bilgileri alır veri tabanına ekler ve tarih değişinceye kadar bir daha sorgu göndermez.
İşleyiş bu,
Sorum ise: O anda saat 00:00 olduğu anda siteye 400 kişi girdiğinde, XML deki verileri o anda 3 kere kayıt yapıyor.
Yani şunu istiyorum o anda işlem tamamlanana kadar gelen sorguları kabul etmesin.
Bunu tamponlama vs. denemediğim yöntem kalmadı çözemedim.
PHP uzmanlarından hassas konuyla ilgili destek bekliyorum.
Arka Arkaya giren kayıtları engelleme
4
●448
- 24-06-2016, 15:24:42Bu probleminizi çözmeniz için izlemeniz gereken yollar aşağıdaki gibidir;
İlk olarak bunu kullanıcı tetikleyecek şekilde değil Zamanlanmış Görev (CronJob) ile yapmanızı öneririm. Daha sonrada çekme işlemi başlatmadan hemen önce (ÖRN: islem.txt) dosya kontrolü sağlayın eğer dosya varsa işlem yaptırmayın eğer dosya yoksa FTP'de içi boş/dolu farketmez bir dosya oluşturun. Çekme işlemi tamamlandığında bu dosyayı silin. Böylece ilk açılan işlem tamamlanıp dosya silinmeden önce gelen tüm isteklerde sistem sorgu göndermemiş olacaktır. - 25-06-2016, 02:24:12Aslında istediğim şu. Mesela bankalarda para çekerken o anda para çekim anında bakiyeden düşüyor. O anda başka bir atıyorum 20 atm den aynı anda para çekmek istediğimizde. O anda SQL sorguyu bloke edecek.
Yada şöyle anlatayım basitçe;
XML sorgusu yaptı, sonucu alıp SQL e yazacak o anda o işlem bitmeden 10000 kişi aynı işlemi yapsada o sorgu bitene kadar diğerleri bu sorguyu yapamayacak.
Yada şöylede diyebilirim;
Sorgudan sonra INSERT yapana cevap verdikten sonra diğerlerinin işlemlerini alsın.
ASP de o sorgu bitmeden başka işlem almayan kod yazılabiliyordu.
PHP de nasıl bir yöntem mevcut. - 25-06-2016, 09:29:51Sanırım yukarıda yazdığım mesajı okumadınız? Zaten size nasıl yapabileceğinizi basit düzeyde anlattım. Gelişmiş seviyelerde lock tables gibi veritabanı taraflı işlemlerde yapılabilir tabiki ama sizin bulunduğunuz aşamada verdiğim mantık stabil çalışacaktır...