folder Tahribat.com Forumları
linefolder Programlama Genel
linefolder Bir Sürü Farklı Yerden Tek Apiye İstek Atmak Ve Request Limiti



Bir Sürü Farklı Yerden Tek Apiye İstek Atmak Ve Request Limiti

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo

    başlık anlaşılmaz oldu da anlatayım:

    şimdi aynı anda çalışan 5000 tane cron jobum var. bazıları google sheets apiye istek atıyor. lakin bir sürü istek aynı anda gidince benim hesabın dakika başı request kotası doluyor.

    nasıl bir çözüm uygulasam sizce? bunun best practice i nedir?

    aklıma bir kaç şey geldi:

    1. hata aldığımda random bi süre bekleyip (2-10 sn) tekrar istek atmak. her task random bi sürede tekrar istek atarsa denk gelmez heralde

    2. google isteklerini kendi yazdığım bi mikroservis üstünden yapmak, o serviste de gelen istekleri gerekirse bekletip google limitlerini aşmadan google a iletip gelen response u proxy etmek

    https://developers.google.com/sheets/api/limits#:~:text=Sheets%20API%20has%20per-minute,requests%20HTTP%20status%20code%20response.

     

    yolbulucu tarafından 26/Mar/24 22:18 tarihinde düzenlenmiştir

    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    5000 tane cronjobun çalışıyor ve hep statik bir request ile mi post ediyor ?

    ne post edeceğini nerden biliyor database'den mi okuyor rabbitmq'dan mı okuyor ?

    random süre atmak risk. pratikte yarısından fazlası 4 saniye altı delay verse bile limite takılma ihtimali var.

    ben olsam lastrundate gibi bişey tutarım. lastrundate'i 1 dakikadan az olan 300 tane job varsa while'ı 1 saniye bekletirim.

    299'a düştüğü anda bir tane daha jobu çalıştırıp 300e tamamlarım.

    benzer şeyleri çok yaptım bir sürü yöntemi var. eğer rabbitmq kullanıyorsan bu delayi rabbitmqda da verebiliyordun.

    while true çalışan serviste 1 saniye bekleterek son 1 dakika içinde çalışan jobları saymak daha kolay ve zahmetsiz tabi.


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    manglerman bunu yazdı

    5000 tane cronjobun çalışıyor ve hep statik bir request ile mi post ediyor ?

    ne post edeceğini nerden biliyor database'den mi okuyor rabbitmq'dan mı okuyor ?

    random süre atmak risk. pratikte yarısından fazlası 4 saniye altı delay verse bile limite takılma ihtimali var.

    ben olsam lastrundate gibi bişey tutarım. lastrundate'i 1 dakikadan az olan 300 tane job varsa while'ı 1 saniye bekletirim.

    299'a düştüğü anda bir tane daha jobu çalıştırıp 300e tamamlarım.

    benzer şeyleri çok yaptım bir sürü yöntemi var. eğer rabbitmq kullanıyorsan bu delayi rabbitmqda da verebiliyordun.

    while true çalışan serviste 1 saniye bekleterek son 1 dakika içinde çalışan jobları saymak daha kolay ve zahmetsiz tabi.

    ya joblar bir sürü iş yapıyor bu işlerden biri ya da bir kaçı sheetten veri okumak. farklı sheetler, farklı veriler vs bu yüzden cache edemiyorum. 

    random süre atınca : "çok istek attın" hatası almayana kadar süreyi arttırıp devam ederim diyodum.

    atıyorum 3sn bekledi, hata aldı, 6 sn beklesin, hata alırsa 12sn. bi de hard limit koyarım, 45sn den fazla beklemen gerekirse öl diye atıyorum. o jobu iptal ederim 


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    eğer structure hale getiremediğin joblarsa en mantıklısı şu anda senin yaptığın. ben olsam ben de benzer şekilde random süre arttırarak apiden hata alana kadar devam ederdim.

    pinterest işi yaparken çok uğraştım cronjoblarla. delay, api,request limit vb :)

    özel işlerimde ise lastrundate mekanizması baya işimi görüyor. panelim var hangi jobun ne sıklıkla çalışacağına ordan da karar verebiliyorum. baız jobların öncelikleri var hiç durmadan çalışıyor ama diğer jobların bekleme kabiliyeti var vb.

    senin işin biraz dah spesifik tabi.

     


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    rakkoc
    rakkoc's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo

    bi tane job gateway gibi bir sey yapsan, tüm joblar ona gitse, o gerekirse cacheler gerekirse sıraya koyar vs 


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek

    coonjoblara delay ekleseen nasıl olur hocam, ilk başta 100 tanesi çalışsın, 10 saniye sonra 100 tane daha çalışsın gibi.

    yada delay süresini, random olarak 1 le 50 arası diyeceksin her cronjoub için rastgele. sonra yaradana sığınıp bekleyeceksin;)

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Laravel de joblara unique id ekleyerek kuyrukta aynı isteğin çift oluşmasını engelleyebiliyoruz. Aynı dosyaya istek atılmasını bu şekilde engelleyerek istek sayısını azaltabiliriz.

    Google sheet e istek atacak işlemleri kuyruğa eklerken queue name (onQueue) aynı ekleyerek, bu kuyruktaki her işten sonra sleep koyarak job u uzatabiliriz. 1. iş başladı ve tamamlanınca 4 sn sleep koyduk. sleep sonrası diğer job a geçecek. Her job ortlama 1 sn sürse, 4 sn de sleep olsa dakika da yaklaşık 20 iş yapması beklenir. Böyle birşey geldi aklıma.


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    rakkoc bunu yazdı

    bi tane job gateway gibi bir sey yapsan, tüm joblar ona gitse, o gerekirse cacheler gerekirse sıraya koyar vs 

    bunu düşündüm işte ben de, ama belki başka çözümü vardır diye sorayım dedim


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    manglerman bunu yazdı

    eğer structure hale getiremediğin joblarsa en mantıklısı şu anda senin yaptığın. ben olsam ben de benzer şekilde random süre arttırarak apiden hata alana kadar devam ederdim.

    pinterest işi yaparken çok uğraştım cronjoblarla. delay, api,request limit vb :)

    özel işlerimde ise lastrundate mekanizması baya işimi görüyor. panelim var hangi jobun ne sıklıkla çalışacağına ordan da karar verebiliyorum. baız jobların öncelikleri var hiç durmadan çalışıyor ama diğer jobların bekleme kabiliyeti var vb.

    senin işin biraz dah spesifik tabi.

     

    bu şekil yaptım şimdi çalışıyor gibi :D dün geceden beri hata almadım


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    Arlong bunu yazdı

    coonjoblara delay ekleseen nasıl olur hocam, ilk başta 100 tanesi çalışsın, 10 saniye sonra 100 tane daha çalışsın gibi.

    yada delay süresini, random olarak 1 le 50 arası diyeceksin her cronjoub için rastgele. sonra yaradana sığınıp bekleyeceksin;)

    onu yapamıyorum ya, bütün işimiz bunun üstüne kurulu 


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
Toplam Hit: 276 Toplam Mesaj: 10
google api