Bir script oluşturmaya çalıştım solda menüler sağda sayfalar ve üye girişi ile giriliyor burada sorun yok Bu scriptin bir işi belirlenecek klasörü ZIP yapmak bunu şöyle yapıyorum ZIP sayılacak dizinler dizinler.php Bu sayfada(dizinler.php) ajax kodu ile zipyap.php sayfasına ZIP olacak dizin adını POST ediyorum ajax zipyap.php sayfadan cevap gelene kadar lütfen bekleyin animasyonu gösteriyor
Sorun şu: Bir kaç dakikalık zip yapma zamanlı sıkıştırmada ZIP yapma başarılı mesajı geliyor animasyon bitiyor, ancak çok daha uzun süren ZIP yapma işleminde animasyon bitmiyor FTP den sunucuya bakıyorum ZIP olmuş bitmiş ama ajax animasyonu bekleyin diyor
Acaba oturum mu kapanıyor da sonuç mesajı alamıyorum sorun ne olabilir?
Ne kadar uzun süreyi cover etmek istediğine bağlı olarak. Elbette bir kaç çözüm var. eğer her durumda bu iş bir kaç saniyeyse server responsive timeout süresini artır. (misal 5 saniye) ama bunu da geçiyorsa asenkron bir yapı kur.
Yani server ilk requestte işlemi alsın. bir kuyruk veya veritabanına kaydetsin ve response bitsin. Sonra işlem bitince arayüzü işlemin bittiğinden haberdar et. Bknz WebSocket.
mahoni_38
kullanıcısına yanıt
Biraz daha dediğinizi açabilirmisiniz ben o kadar anlamıyorum otorum süresi varsayılan 15 dakika ben bununla oynamak istemiyorum
quote:
Orijinalden alıntı: gecekule
Biraz daha dediğinizi açabilirmisiniz ben o kadar anlamıyorum otorum süresi varsayılan 15 dakika ben bununla oynamak istemiyorum
Anahtar kelimeler: Web socket , job scheduler (örneğin .net deki hangfire, javadaki quartz) bunlar nedir nasıl kullanılır öğrenmek sana kaldı.
Bu en basit çözüm olur ama pek de iyi bir yöntem değil. Yukarıdaki arkadaşın da dediği gibi asenkron bir yapı oluşturmak daha kabul edilebilir bir yaklaşım. Hem bu sayede kullanıcı, ZIP oluşturma işlemini beklememiş olur. ZIP oluşturma işlemini, RabbitMQ gibi bir kuyruk sistemine atıp işlemin arkaplanda devam etmesini sağlayabilirsin.
Bu en basit çözüm olur ama pek de iyi bir yöntem değil. Yukarıdaki arkadaşın da dediği gibi asenkron bir yapı oluşturmak daha kabul edilebilir bir yaklaşım. Hem bu sayede kullanıcı, ZIP oluşturma işlemini beklememiş olur. ZIP oluşturma işlemini, RabbitMQ gibi bir kuyruk sistemine atıp işlemin arkaplanda devam etmesini sağlayabilirsin.
zip yapan sayfanın başına @ini_set('memory_limit', '-1'); @ini_set('max_execution_time', 60*60*24); Bunları ekledim sorun düzeldi
Ancak dediğiniz gibi bellek sorunu olabilir mi bilmiyorum bende bir sorun görmedim