merhaba bir döngüm var 10 dakikada bir çalışması gerek ama işlemler uzun sürüyor her bir işlem yaklaşık 3 4 saniye alıyor mysql dan çekilen her bir işlem için timeout olmadan işlemi tamamlamasını nasıl sağlarım, yani örneğin 5 adet kayıt var
işlem başlıyor... her biri 5 saniye sürüyorsa
25 saniye sonra 5 adet veri tamamlandı diye mesaj atıyor ben bunu istemiyorum
5 saniye sonra 1. veri tamamlandı 2.ye geçsin 3. ye geçsin gibi mesaj gelsin istiyorum yoksa timeout yiyor sayfa işlem gerçekleşmiyor
bunu çözebileceğim bir kaynak varmıdır
for döngüsü sayfayı zaman aşımına sokuyor
9
●151
- 26-12-2020, 01:36:46Hocam dediğiniz şey php ile olmaz js ve ajax kullanarak yapabilirsiniz. Js kodlarında CountDownTimer timer kullanırsınız timer tetiklendiğinde ajax ile işlem yaptırıp ekrana yazdırırsınız. Eğer phpde böyle bir şey varsa ben bilmiyorum
- 26-12-2020, 01:38:56nası yapabiliriz ki jquery de olur kaynak lazım bana beynim durduibrahimdemir adlı üyeden alıntı: mesajı görüntüle
)
- 26-12-2020, 01:43:24jQuery ajax ile probleminizi çözebilirsiniz. Her işlemi farklı php sayfalarında yaparsınız, işlem sırasına göre ilk işleminizi post edip sonuç beklediğiniz sonuç ise 2. işlemi post edersiniz.
- 26-12-2020, 01:43:11https://makitweb.com/how-to-fire-aja...ular-interval/ Burayı incelebilirsiniz hocam bi sorun olursa pm atın istersenizmuraatydn adlı üyeden alıntı: mesajı görüntüle
- 26-12-2020, 01:43:22örnek bir sayfa varmıdır şu da olur bana ilk 10 veriyi yapsın bitince diğer 10 veriyi yapsın gibisefacandemir adlı üyeden alıntı: mesajı görüntüle
- 26-12-2020, 01:58:54Buradan jQuery ajax post örneğine bakabilirsiniz. İstediğiniz işlem için interval vs gerektiğini düşünmüyorum. Tek yapmanız gereken sql sorgunuzu düzenlemek. Örneğin ilk 10 sonuç istiyorsanız first-request.php adında bir dosya oluşturup burada ilk 10 sorgusunu döndürün, daha sonra ajax success (callback) fonksiyonunda dönen sonucu kontrol edin, istediğiniz sonuçlar ise sonraki 10 sonucu dönderecek sql sorgusunu second-request.php isimli farklı bir dosyada dönderin ve tekrar ajax ile bu sayfaya post gönderin.muraatydn adlı üyeden alıntı: mesajı görüntüle
Örnek:
function post(url, data){ $.ajax({ type: "POST", url: url, data: data, success:postCallback(returnedData), dataType: dataType }); } function postCallback(returnedData){ if(returnedData) // İstediğiniz verinin dönüp dönmediğini kontrol edeceğiniz alan post('ikinciposturl', ['ikinci','post','data']) // ikinci post } post('ilkposturl','ilkpostdata') - 26-12-2020, 02:44:34Döngüye gerek yok, 10 dakikada bir çalışıyorsa ortada cron var demektir. Verilerinizin işlendiğine dair bir kolonunuz olduğunu varsayıyorum. "islendi" isimli kolonu kullanarak ilk kaydı çekin
1. select sorgusuna where clause ekleyip, islendi=0 limit=1 gibi bir koşul koyun.
2. İşlenmemiş verileriniz arasından en eskisi sonuç olarak dönsün. İşleyin ve mesajınızı (1. veri tamamlandı) diye gönderin.
3. crontab ayarlarını her 15 saniyede bir çalışacak şekilde yapılandırın. Bu sayede yaklaşık olarak bir önceki işlem bittikten hemen sonra yeni işlem başlayacaktır.
Eğer sayfanızı manuel çağırıyorsanız yine aynı işlemleri yapıp, sayfanın sonuna refresh kodu ekleyerek, her bir işlem bittiğinde sayfanın yeniden çalışmasını sağlayabilirsiniz.
Anlattıklarınızdan çıkarımlarımıza göre verdiğimiz yanıt bu şekilde, tahmin yürüterek verilecek hiç bir cevap işinize yaramayacaktır. Kodunuzu görmek gerek. - 01-01-2021, 20:29:18php de de durdurma islemi mevcut sleep i arastırın saygılarımla...
)