folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder PHP Curl - Eksik Veri Çekme Sorunu



PHP Curl - Eksik Veri Çekme Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    Hocalar merhabalar. Bir siteden Curl kullanarak son 10 yıla ait büyükçe bir veri çekiyorum. Botum döngümü küçük bir kısım için döndürdüğümde eksiksiz şekilde veri alabiliyorum fakat 10 yılın tamamını bir anda çekmeye çalıştığımda eksik veriler oluyor, verilerin tamamı eksiksiz şekilde database e aktarılmıyor. Çektiğim verinin büyük boyutlu olmasından kaynaklandığını düşündüğümden kodu paylaşmıyorum, çünkü dediğim gibi küçük döngüler yaptığımda kod kusursuz çalışıyor. Bu genel bir sorun mudur? Eğer öyleyse çözüm yolları nelerdir? Şimdiden teşekkür ediyorum.


    since 2005 // tbt
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TheKorsans
    TheKorsans's avatar
    Kayıt Tarihi: 17/Nisan/2012
    Erkek

    hocam paylaşmadığın sürece kimse net bir cevap veremez. belki sen hatanı görmüyor olabilirsin ama curl konusunda daha iyi olan birisi hatanı söyleyebilir.


    Hayattaki yegane üstünlüğüm, Türk doğmaktır.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek
    TheKorsans bunu yazdı

    hocam paylaşmadığın sürece kimse net bir cevap veremez. belki sen hatanı görmüyor olabilirsin ama curl konusunda daha iyi olan birisi hatanı söyleyebilir.

    hocam dediğim gibi kod 1 yıl için çalıştırdığımda doğru şekilde çalışıyor, 10 yıl için yaptığımda bazı verileri tam bazılarını eksik çekiyor. Dolayısıyla kodda sıkıntı olduğunu zannetmiyorum. Büyük verilerde çalışırken bu tarz genel bir sorun olup olmadığıydı benim merak ettiğim.


    since 2005 // tbt
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pSkpt
    pSkpt's avatar
    Kayıt Tarihi: 10/Aralık/2010
    Erkek

    timeout değerini sıfırlamayı dene? ya da veriyi bölerek çekmeye çalış

    1-2 yıl arası

    2-3 yıl arası

    3-4 yıl arası

    ... gibi


    İmza...
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek
    pSkpt bunu yazdı

    timeout değerini sıfırlamayı dene? ya da veriyi bölerek çekmeye çalış

    1-2 yıl arası

    2-3 yıl arası

    3-4 yıl arası

    ... gibi

    evet hocam şuan bölünmüş şekilde çalışıyorum zaten, ama beni epey yavaşlatıyor bu olay. Timeout 0 yapmayı bi deniyim, o şekilde eğer bağlantı koparsa bağlantı gelene kadar bekliyor değil mi yanlış bilmiyorum


    since 2005 // tbt
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ndmylmz
    ndmylmz's avatar
    Kayıt Tarihi: 01/Ocak/2010
    Erkek

    Hocam anlamadığım 10 yıllık veriyi nasıl aynı anda çekiyorsun.? Çektiğin yerde tek sayfada 10 yıllık veri mi tutuluyor. Bunu yapmış olmaları saçma geldi. Bi ikinci belki bunu yanlış anlamış olabilirim yani veriler tek sayfada değildir. O zaman curl döngüsünü zaten sürekli döndürmen gerekecek bu durumda yıllara ayırman senin içinde kolay olmaz mı?


    Sistemi de kapattım ama PHP konusunda hala yardımcı olurum // Boş gezenin boş kalfası - Öğrenci - YTÜ
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek
    ndmylmz bunu yazdı

    Hocam anlamadığım 10 yıllık veriyi nasıl aynı anda çekiyorsun.? Çektiğin yerde tek sayfada 10 yıllık veri mi tutuluyor. Bunu yapmış olmaları saçma geldi. Bi ikinci belki bunu yanlış anlamış olabilirim yani veriler tek sayfada değildir. O zaman curl döngüsünü zaten sürekli döndürmen gerekecek bu durumda yıllara ayırman senin içinde kolay olmaz mı?

    çektiğim yerde tek sayfada değil hocam ama xxx.com/datas/2014-2013, xxx.com/datas/2013-2012 şeklinde tutuluyor veriler. Dolayısıyla aynı for içinde sadece yıl değişkenini değiştirerek verileri çekebiliyorum şöyle ki;

     

    $year = array(

    "2013-2014", 

    "2012-2013", 

    "2011-2012", 

    "2010-2011", 

    "2009-2010", 

    "2008-2009", 

    "2007-2008", 

    "2006-2007", 

    "2005-2006",

    "2004-2005"

     

    );

     

    for($y = 0; $y<count($year); $y++){

    $url = "http://xxx.com/datas/{$year[$y]}"

    .

    .

    }

    manyaki tarafından 15/Ara/14 01:33 tarihinde düzenlenmiştir

    since 2005 // tbt
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    acaba çektiğim verileri binary mi yapmalıyım daha hızlı ve eksiksiz olması için


    since 2005 // tbt
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ndmylmz
    ndmylmz's avatar
    Kayıt Tarihi: 01/Ocak/2010
    Erkek

    Heh işte olay burda hocam sen kendin tek sayfa içinde karşı tarafın 10 yıllık verisini indirip kaydetmeye çalışıyorsun. Bu senin tek sayfa işleminle karşı tarafa 10 bağlantı isteği, db kayıtları vs vs demek ki hem kendi sistemine çok yük biner, hemde karşı taraf bu kadar isteği bikaç sn içinde aldığı için tepki verebilir.

     

    <?php

    $yil=$_GET["yil"]; //urlden yil değişkeni aldık..

    if($yil){

    //işlemler yapıldı..

    //veriler alındı...

    //sonunda auto sayfa yönlendirmesi yapılarak başka sayfada verialınması sağlanır..

    $link = 'islemyaptigindosya.php?yil='.($yil-1);

    header(Refresh:1;$link);

    }

    ?>

     

    İşlemi en sonunda kendin durdurabilirsin. Biraz daha uzun sürecektir ama hem senin db yi yormaz hem karşı tarafa çaktırmaz :D


    Sistemi de kapattım ama PHP konusunda hala yardımcı olurum // Boş gezenin boş kalfası - Öğrenci - YTÜ
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek
    ndmylmz bunu yazdı

    Heh işte olay burda hocam sen kendin tek sayfa içinde karşı tarafın 10 yıllık verisini indirip kaydetmeye çalışıyorsun. Bu senin tek sayfa işleminle karşı tarafa 10 bağlantı isteği, db kayıtları vs vs demek ki hem kendi sistemine çok yük biner, hemde karşı taraf bu kadar isteği bikaç sn içinde aldığı için tepki verebilir.

     

     

     

    İşlemi en sonunda kendin durdurabilirsin. Biraz daha uzun sürecektir ama hem senin db yi yormaz hem karşı tarafa çaktırmaz :D

    bi deniyim hocam teşekkür ederim


    since 2005 // tbt
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kvasir
    kvasir's avatar
    Kayıt Tarihi: 24/Ağustos/2005
    Erkek
    manyaki bunu yazdı
    ndmylmz bunu yazdı

    Heh işte olay burda hocam sen kendin tek sayfa içinde karşı tarafın 10 yıllık verisini indirip kaydetmeye çalışıyorsun. Bu senin tek sayfa işleminle karşı tarafa 10 bağlantı isteği, db kayıtları vs vs demek ki hem kendi sistemine çok yük biner, hemde karşı taraf bu kadar isteği bikaç sn içinde aldığı için tepki verebilir.

     

     

     

    İşlemi en sonunda kendin durdurabilirsin. Biraz daha uzun sürecektir ama hem senin db yi yormaz hem karşı tarafa çaktırmaz :D

    bi deniyim hocam teşekkür ederim

    Ekstra dosya yerine sleep() kullan her loopta ?

Toplam Hit: 1457 Toplam Mesaj: 16