Php Uzun Sürecek İşlemi Nasıl Yapmalıyım?
-
merhaba
opencart bi sisteme excelden ürün aktarmak için eklenti yazıyorum
ürün sayısı daha 100 lerdeyken bile timeout oluyo.
exceli tek tek gezip her satırda db ye ekleyerek yapmaya çalışıyorum. ben de şöyle bi yöntem düşündüm:
ürünleri excelden tek tek okuyup bi arraye atayım, sonra javascript arrayı şeklinde sayfaya basayım, o sayfada ajax/jquery ile tek tek her birini ajaxla ayrı bi php dosyasına gönderip ordan db ye ekleteyim
şimdi bunu deniycem ama belki daha iyi bi fikriniz / çözümünüz vardır diye konu açayım dedim. hem de benim yöntem doğruysa başka insanlara fikir verir
ayrıca: opencart için excel ürün aktarım modülü isteyen varsa cüzi ücrete satabilirim
şöyle bişey yaptım : http://pasteboard.co/23hk1S0t.png
-
5 bin urunlerde timeout olmasi lazim sunucuya optimizasyon yapilip cozuluyor oyle durumlarda .
Yine host ayarlarini phpiniyi kontrol et
-
hipokondriyak bunu yazdı
5 bin urunlerde timeout olmasi lazim sunucuya optimizasyon yapilip cozuluyor oyle durumlarda .
Yine host ayarlarini phpiniyi kontrol et
onlari yaptimda hocam urun aciklamalarini diger dillere translate ettirip ekletiyorum, bu yuzden daha uzun suruyo sorununu stratejik olarak elimine etmem gerek
-
Opencart için hazır xml içeri alan bir modülde sıkıntı yaşamıştık sunucu kaldıramıyordu 14-15 bin gözlük vardı 3-4 saate %80 i anca atabilmişti sonra kitlendi.
Hergün xml güncellemek de gerektiğinden sunucuyu yormamak için masaüstü bir uygulama yapmışştım ilk xml i siteye masaüstü uygulaması ile yükledikten sonra yaklaşık 2-3 saat sürmüştü seçenek marka ve translate olayından dolayı daha sonra hergün o xmli masaüstü yazdığım programa yüklemiştim buradada trigerlarla if (new.stokadet is distinct old.stokadet) then log tablosuna stokkodunu at burada programın yaptığı şey yeni eklenen ürün, değişen stok adedi, ürün adı v.s gördüklerini log tablosuna bakarak anlıyordu ben sadece o log tablosundaki kayıtları güncell tutuyordum hergün 14-15 bin stok komple güncellemiyordu sadece değişen ve yeni eklenenler.
belki benzer bir şekilde mysql de bir tabloya olduğu gibi exceli yükleyip daha sonraki yüklemelerinde yukarıda anlatığım mantıkla işlem kısaltması yapabilirsin. -
php de uzun sürecek işlemleri parçalara bölüp parça parça yapmalısın. bunuda kuyruk yapıları ile yapacaksın.
rabbitmq olayına bir bak istersen
-
işi parçala usta. Yani excel'in tüm kayıtlarını tek işlemde yapma. Exceldeki rowları 100'e böl, her bölümü insert yaptıktan sonra sleep ve tekrar kendini çağır 100 ile 200 arasını ekleme yap gibi. Recursive function gibi düşün.
-
Timeoutu kapatsan? :/
-
Cosmic bunu yazdı
Timeoutu kapatsan? :/
iste cosmic bir yaklasım. Bu adamı seviyorum. PHP de nasil yapiliyor gerçi bilmiyorum ama adamın php bilgisi gerçekten iyi.
-
rakkoc bunu yazdıCosmic bunu yazdı
Timeoutu kapatsan? :/
iste cosmic bir yaklasım. Bu adamı seviyorum. PHP de nasil yapiliyor gerçi bilmiyorum ama adamın php bilgisi gerçekten iyi.
abi her hostta kapatamiyoruz, yazdigim modulu pazarlamayi dusundugumden bu secenegi direk gectim.
drkill in dedigi gibi parcalara bolucem, pagination gibi her seferinde 5 satir sonrasindan baslayacak sekilde kendini cagirsin seklinde yapiyorum
-
excel' i csv' ye convert edip, import ettirsen ?
Php excel to csv için de PHPExcel kütüphanesiyle yapılıyormuş,
Burada -> convert işlemi :
http://hayageek.com/convert-xls-to-csv-in-php/
LOAD DATA LOCAL INFILE
Burada -> import işlemi :
http://stackoverflow.com/questions/11448307/importing-csv-data-using-php-mysql
https://blog.paranoidpenguin.net/2011/04/load-data-local-infile-from-php/
ozgunlu tarafından 30/Haz/16 09:59 tarihinde düzenlenmiştir -
ozgunlu bunu yazdı
excel' i csv' ye convert edip, import ettirsen ?
Php excel to csv için de PHPExcel kütüphanesiyle yapılıyormuş,
Burada -> convert işlemi :
http://hayageek.com/convert-xls-to-csv-in-php/
LOAD DATA LOCAL INFILE
Burada -> import işlemi :
http://stackoverflow.com/questions/11448307/importing-csv-data-using-php-mysql
https://blog.paranoidpenguin.net/2011/04/load-data-local-infile-from-php/
abi onu dusundumde, opencartta urun eklemek icin birden fazla tabloya yazmak gerekiyo.
simdi soyle yapiyorum, ilk dosyam exceli kullanicidan aliyo, gecici klasore atiyo
ikinci php yi cagiriyo : import.php?dosyaAdi=dosya.xlsx&satir=1 falan gibi, her seferinde 5 satir ekleyip kendini satir=6 diye tekrar cagiriyo