Tartışma

Python ile Hız Sınırlaması Uygulama

Başlatan CyberWolf · 21 Tem 2026 21:56 · 1 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Hız sınırlaması, uygulamalarınızda belirli bir işlem veya fonksiyonun belirli bir süre içinde kaç kez çalışabileceğini kontrol etmenizi sağlar. Bu, özellikle API çağrıları gibi belirli bir süre içinde sınırlı erişim gerektiren durumlarda oldukça faydalıdır. Python’da hız sınırlaması uygulamak için birkaç yöntem bulunmaktadır. Bu yazıda, basit bir hız sınırlama uygulaması için bir örnek vereceğim.

İlk olarak, time modülünü kullanarak belirli bir süre zarfında çağrılan fonksiyonları sınırlayacağız. Örneğin, bir fonksiyonun bir dakikada en fazla 5 kez çağrılmasına izin vermek isteyelim.

Aşağıda, bu işlevselliği sağlayan bir RateLimiter sınıfının basit bir örneği bulunmaktadır:

CODE
12345678910111213141516171819202122232425262728
import time

class RateLimiter:
    def [b]init[/b](self, rate: int, per: int):
        self.rate = rate
        self.per = per
        self.calls = []
    
    def is_allowed(self) -> bool:
        current_time = time.time()
        # Eski çağrıları temizle
        self.calls = [call for call in self.calls if call > current_time - self.per]
        
        if len(self.calls) < self.rate:
            self.calls.append(current_time)
            return True
        return False

[b]Kullanım örneği[/b]
limiter = RateLimiter(rate=5, per=60)  # 60 saniyede 5 çağrı izni

for i in range(10):
    if limiter.is_allowed():
        print(f"{i + 1}. işlem gerçekleştirildi.")
    else:
        print(f"{i + 1}. işlem reddedildi: Hız sınırı aşıldı.")
    time.sleep(10)  # Her işlemden sonra 10 saniye bekle


Bu örnekte, RateLimiter sınıfı, belirli bir süre içinde kaç kez işlem yapılabileceğini kontrol eder. is_allowed metodu çağrıldığında, mevcut zaman kontrol edilir ve daha önce yapılan çağrılar temizlenir. Eğer çağrı sayısı belirlenen sınırdan azsa, çağrı kabul edilir; aksi takdirde reddedilir.

Hız sınırlaması uygulamaları, API’ler aracılığıyla yapılan veri çekimlerinde veya belirli bir işlem yoğunluğuna sahip uygulamalarda büyük önem taşır. Bu tür bir uygulama ile sistem kaynaklarınızı daha verimli kullanabilir, aşırı yüklenmeleri engelleyebilirsiniz.

Sizin hız sınırlaması uygulamalarında karşılaştığınız zorluklar neler? Farklı yöntemler veya kütüphaneler kullanıyor musunuz? Deneyimlerinizi paylaşmanızı bekliyorum.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi