5
Tôi đã tìm thấy this trang trí trăn giới hạn tốc độ dựa trên các lớp redis. Làm thế nào tôi có thể viết một trang trí tương tự chỉ sử dụng những gì có sẵn trong thư viện chuẩn có thể được sử dụng như sau?Trang trí trăn giới hạn tỷ lệ
def ratelimit(limit, every):
# python magic
@ratelimit(limit=1, every=2)
def printlimited(x):
print x
# print one number every two seconds
for x in range(10):
printlimited(x)
Có answers khác trên stackoverflow nhưng họ không cho phép để xác định mẫu số.
Điều này sẽ không phát hành semaphore nếu hàm được bao bọc đưa ra ngoại lệ. Bạn có thể sử dụng mệnh đề 'try..finally' để đảm bảo điều đó xảy ra. –
@PaulMFurley bắt thú vị! Tôi đã chỉnh sửa mã, bạn có kiểm tra nó không? –