[]
PHP'de çok uzun süren işlemlerle ilgili
şimdi, başka bir siteden veri çekiyorum. bu sitenin aşağı yukarı 40 farklı sayfasından çekiyorum bunları ve hemen akabinde de kendi vertabanımda işleyip aktarıyorum. dolayısıyla uzun sürüyor bu işlem, o yüzden her sayfa için ayrı ayrı butona basıyorum. (önce 1. sayfayı çek, ardından 2. sayfayı vs.) (tek tek basıyorum çünkü 60sn sınırı var, çekmiyor)
Şöyle bir şey mümkün mü: bu işi öyle bir şekilde otomatiğe bağlayayım ki, tek seferde çekeceğine, 60sn sınırına yakalanmayalım diye, ben bir kez tıkladığımda bu sıra sıra uygulasın. ben de 60sn sınırına takılmadan bilgileri çekeyim?
Şöyle bir şey mümkün mü: bu işi öyle bir şekilde otomatiğe bağlayayım ki, tek seferde çekeceğine, 60sn sınırına yakalanmayalım diye, ben bir kez tıkladığımda bu sıra sıra uygulasın. ben de 60sn sınırına takılmadan bilgileri çekeyim?
max execute time değerini 0 yap isterse 10 gün sürsün işlem kendi otomatik yapsın.
- bir kac yazar once (09.06.12 20:44:20)
kanka bu php.ini'den yapılmıyor mu? peki ben bunu satın aldığım sunucuda nasıl değiştirebilirim?
- kameramotor (09.06.12 21:25:59)
sayfanın en başına set_time_limit(0); koy sorun çözülür.
- bir kac yazar once (10.06.12 00:45:54)
60 sn siniri nerede var ? verileri cektigin diger sitede mi ? eger oyleyse sunucuda bir tane cronjob ayarla, 60 sn' de bir veri cektigin .php dosyasini calistirsin. eger tek bir butona bastigin anda bu olayin gerceklesmesini istiyorsan bu veri cekme islemini yapan .php dosyasinda her request' den sonra 60 sn beklet(sleep gibi bir fonksiyon vardir kesin). ama boyle yapinca da islemin tamamlanip, sana cevap donmesi uzun surer. o yuzden bir message queue kullanarak bu islemi bir background job olarak calistirmak daha iyi olabilir.
- sterimar (10.06.12 01:59:55)
@sterimar, arkadaşın problemi yanlış anlamadıysam 60 sn içerisinde php'nin çalışmayı bırakması. Yani karşı taraftaki server ile ilgili bir durum yok.
- bir kac yazar once (10.06.12 02:15:32)
1