• 22-01-2010, 01:32:22
    #1
    iç içe 3 for döngüsünde çalışan bir bot var. Kabaca örnek verecek olursam ilk for dongusu foruun kategorilerini cekiyor.

    İkinci for ise her kategori okundugunda onun içine gidiyor, o kategorideki konu baslıklarını okuyor.

    Ucuncu for ise o kategori içindeki baslıkların içindeki mesajları alıyor.

    | = Kategori (mesela php kategorisi ve diğerleri )

    || = Başlıklar (Burada açılan konubaslıkları)

    ||| = SOn basamak. yani Konu içerikleri



    Bot ilk önce kategorileri tarıyor anasayfadan. İlk buldugu kategori diyelim php. hemen onun içine giriyor. Orada ilk gördugu konu diyelim "phpde guvenlik" konu baslıgı. Hemen onun içine girip içeriği alıyor. İçerik bitince bir uste yani eski ye geliyor. Php kategorisindeki diğer baslığa bakıyor. İkinci konu baslıgı diyelim "php mi asp mi?" hemen ucuncu for dongusu iile buradaki içeriği alıyor. Bir uste cıkıyor geri geliyor yani. Php kategorisine. Burada baslıkkalmayınca ana kategoriye geliyoe. Asp kategorisine giriyor. Aynı sekilde böle böle tum kategori baslık ve mesajları tarayıp veri cekior.

    Benim sorum sıkıntım bu kadar yoğun işi otomatik yaparken server kasıyor. Hem benim serverda sıkıntı oluyor hemde veri cektigim sitede o anlık yavaslama olabilir.

    Benim tüm verileri almam için bir acelem yok. Her adımda belli bir saniye bekletsemmi kodu? Veya baska alternatif yol nedir? Php de timer nasıl kullanılıyor? Yada time kullanmak ayrıcamı kasar. O zamanı saymak için ugrasacak server v.s. gibi.

    Derdimi anlatabilmişimdir inş . Kısaca nasıl botla veri cekerken her iki sunucuyuda fazla yormadan işlem yapablirim?
  • 22-01-2010, 02:12:49
    #2
    şöyle yapsan nasıl olur? bot.php çalıştığında kategorileri çeker ve db ye kaydeder sonra bot.php?islem=konucek adresine yönlenir ve db den az önce kaydettiği kategori linklerini çekerek kategorilere girer bu sefer konu linklerini çeker ve db ye kaydeder sonra bot.php?islem=mesajcek sayfasına yönlenir ve az önce kaydedilen konu linklerine girerek mesajları çeker, mesela her sorguda 20 link çeker ve sonra bot.php?islem=mesajcek&sayfa=2 3 4 vs. şeklinde devam eder.
  • 22-01-2010, 03:29:57
    #3
    sleep(5);
    bu komutu kullanabilirsin bu 5 saniye bekletir
  • 22-01-2010, 08:34:53
    #4
    Üyeliği durduruldu
    cronjab ile cagirmiyorsaniz bot clientte acik duruyorsa o zaman javascript kulanabilirsiniz.

    cronjab seklinde calisiyorsa okumadaki linkleri bir dosya yada veritabani ile iliskilendirerekte islem yapabilirsiniz
  • 22-01-2010, 10:46:38
    #5
    @Invictus : Hocam dedğiniz gibide yaparım ama sonucta değşiklik olmayacak galiba. İki yöntemlede bot verileri eş zamanda bitirir. Ve serverlar gerim gerim gerilir. Benim asıl amacım işlem yoğnluğunu zamana yayarak hem kendi serverımı hemmde karşı siteyi minumum yorarak
    işi gerçekleştirmek.


    @husee3 : Aradığım komut inş budur hocam. Ben sleep komutunu her işlem sonunda kullansam server daha mı az yorulur gerçekten??? Yoksa ayrıca bir komut daha eklendiği için daha mı yük bindirmiş olurum. Sonuçta sleep kullansakta verileri çekeceğiz , bu komutla birde server sleep i yorumlayıp icraate gecireceğim sayacıma saydıracağım , sayacım istenilen veriye ulaşmışmı diye bakıp öyle diğer koda geçecek eylemini gerçekleştirecek ya.

    @sdemirkeser : Hocam ne yalan söyleyeyim cronjab bilmiyorum. Kullanmıyorum haliylede. Mesajınızı biraz daha açıp bilmeyen bana öğretir gibi cevaplarsanız çok sevineceğim. Ve ayrıca siz sleep komutu hakkında yorumumu nasıl değerlendirirsiniz?


    Cevap yazan arkadaşlara teşekkür ederim. Elimden geldiğince minnetimi göstermek isterim.

    Saygılar
  • 22-01-2010, 10:59:14
    #6
    Üyeliği durduruldu
    mally328 adlı üyeden alıntı: mesajı görüntüle
    @sdemirkeser : Hocam ne yalan söyleyeyim cronjab bilmiyorum. Kullanmıyorum haliylede. Mesajınızı biraz daha açıp bilmeyen bana öğretir gibi cevaplarsanız çok sevineceğim. Ve ayrıca siz sleep komutu hakkında yorumumu nasıl değerlendirirsiniz?
    sleep komutu ile devamli beklemede olan processler olusturursunuz ve o anki durumu takip etme sansiniz olmaz. bahsettigim durum icin ama javascript bilmeniz lazim biraz. settimeout ile belli sure araliklarla islem yapabilirsiniz.

    yada php kodlarini tekrar tekrar cagirip her bir alt islem icin. veritabanina kaydedeip burdan islem yaparak gidilebilir.
  • 22-01-2010, 11:16:41
    #7
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    sleep komutu ile devamli beklemede olan processler olusturursunuz ve o anki durumu takip etme sansiniz olmaz. bahsettigim durum icin ama javascript bilmeniz lazim biraz. settimeout ile belli sure araliklarla islem yapabilirsiniz.

    yada php kodlarini tekrar tekrar cagirip her bir alt islem icin. veritabanina kaydedeip burdan islem yaparak gidilebilir.


    sleepin js versiyonu set_time olarak düşünebiliriz dimi hocam. Sleep server kısmında sayıp serveri yorarken js local client ta çalıştığı için sistemi rahatlatır diyorsunuz. Doğrumu anlamışım? Ya her işlem sonunda set_time (js) kullan yada ilk mesajda arkadasın yazdıgı gibi işlemleri adım adım yap diyorsunuz?
  • 22-01-2010, 11:23:19
    #8
    Üyeliği durduruldu
    mally328 adlı üyeden alıntı: mesajı görüntüle
    sleepin js versiyonu set_time olarak düşünebiliriz dimi hocam. Sleep server kısmında sayıp serveri yorarken js local client ta çalıştığı için sistemi rahatlatır diyorsunuz. Doğrumu anlamışım? Ya her işlem sonunda set_time (js) kullan yada ilk mesajda arkadasın yazdıgı gibi işlemleri adım adım yap diyorsunuz?
    setTimeOut var hocam javascript te onla zaman bekleyerek sayfayi yenilemek sureti ile adim adim islem yaptirabilirsiniz.

    yada bir sayfa acilir. ajax ile bekleyerek talep eder. sistemi bu tarz seyler cok hafifletir
  • 22-01-2010, 13:54:46
    #9
    Üyeliği durduruldu
    kafanı yorma en iyisi

    sleep(5); //5sn Bekler