|
Ek$igator an itibariyle, 11,070 kayıtlı üye tarafından 7,931 farklı başlığın takip edildiği ancak, son zamanlarda sözlüğe gereksiz istekler yapan, kimilerince pek sevilen bir sub-etha üyesi.
Gereksiz istekler yapma sorunu aslında, bir concurrency problemiydi. Aynı başlık, birden fazla kullanıcının takibindeyse, başlığın içeriğinin sözlükten alınması süresince (yaklaşık 3-4 saniye) gelen istekler tekrar sözlüğe iletiliyordu. Aslında burada yapılan ilk istekte veri alınmaya başlanmıştı, ama diğer isteklerin bu süreçten haberi yoktu. Bu hatadan dolayı da sözlük yöneticileri, ek$igator'ın sözlüğe erişimini geçici olarak engelledi.
Bu concurrency sorununu çözmek için de geçen sene hakkında bir belge yazdığım RabbitMQ implementasyonunu gerçekleştirdim.
Bu sayede, sözlükten içerik alma istekleri bir kuyruğa alınacak, bir python betiği de bu kuyruktaki işleri işleyip ilgili cache'leri oluşturacaktı. Bu tam şoparmene göre bir işti! ve http://github.com/yuxel/eksigator adresinde bu implementasyon hayat buldu.
Artık sözlüğe gereksiz istekler gitmeyecek ve eskiden senkron yapılan, kullanıcının takip ettiği başlıkları sözlükten fetch edip ekrana gösterme (her başlık için 3-4 saniye, 20 başlık varsa 1-2 dk!!!) işlemi, asenkron hale gelecek bu sayede maksimum bekleme süresi 10 saniyeye düşmüş olacaktı.
Bu da böyle bir anımdı. |
|
27.Nisan.2011 Çarşamba
:: 07:01:53 |
61476 kere okundu |
|
|
Takvim |
|
|
< Eylül 2024 > |
P | S | Ç | P | C | Ct | Pz |
| | | | | | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
|
|
|
|
|
|