[Trình Trang Trí Python] Điều Tiết Lưu Lượng

By hientd, at: 12:00 Ngày 10 tháng 10 năm 2023

Thời gian đọc ước tính: __READING_TIME__ minutes

[Python Decorators] Throttle
[Python Decorators] Throttle

Bộ trang trí throttle trong Python được sử dụng để giới hạn tần suất gọi một hàm. Điều này đặc biệt hữu ích cho việc giới hạn tốc độ để ngăn một hàm bị gọi quá thường xuyên, điều này có thể quan trọng đối với các hàm tương tác với API hoặc thực hiện các tác vụ sử dụng nhiều tài nguyên.

LƯU Ý: Django Rest Framework cung cấp tính năng này bên trong

 

Triển khai

 

Dưới đây là cách bạn có thể triển khai bộ trang trí throttle:

 

import time
from functools import wraps

def throttle(seconds):
    def decorator(func):
        last_called = [0]
        
        @wraps(func)
        def wrapper(*args, **kwargs):
            elapsed = time.time() - last_called[0]
            if elapsed >= seconds:
                last_called[0] = time.time()
                return func(*args, **kwargs)
            else:
                print("Function call throttled")
        return wrapper
    return decorator

@throttle(5)
def my_function():
    print("Function called")

my_function()  # Output: Function called
time.sleep(2)
my_function()  # Output: Function call throttled
time.sleep(5)
my_function()  # Output: Function called

 

Giải thích

 

  1. @throttle(seconds): Bộ trang trí này giới hạn các cuộc gọi hàm xuống một lần cho mỗi số giây được chỉ định.
     
  2. last_called: Theo dõi thời điểm cuối cùng hàm được gọi để thực thi việc điều tiết.

 

Lợi ích

 

  • Giới hạn tốc độ: Ngăn các hàm bị gọi quá thường xuyên, bảo vệ tài nguyên.
     
  • Kiểm soát: Đảm bảo rằng các hàm sử dụng nhiều tài nguyên không làm quá tải hệ thống.

 

Trường hợp sử dụng

 

  • Yêu cầu API: Giới hạn tốc độ yêu cầu để tuân thủ giới hạn tốc độ API.
     
  • Quản lý tài nguyên: Kiểm soát quyền truy cập vào các hàm thực hiện các phép tính nặng hoặc các hoạt động cơ sở dữ liệu.

 

Kết luận

 

Bộ trang trí throttle là một công cụ có giá trị để quản lý tần suất gọi hàm, đảm bảo ứng dụng của bạn vẫn hiệu quả và tuân thủ các giới hạn tốc độ.

Bạn có thể tìm thấy thêm các bộ trang trí Python ở đây:

 

Tag list:
- Decorator
- Logging Decorator
- Decorators Order
- Python decorators
- rate limit
- python throttle
- throttle
- throttling
- throttle decorators
- throttling rate limit
- throttle python

Liên quan

Great Sites Website Review

Đọc thêm
Python

Đọc thêm
AI Great Sites

Đọc thêm

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.