Я нашел this ограничитель скорости python decorator на основе redis классы. Как написать подобный декоратор, который использует только то, что доступно в стандартной библиотеке, которое можно использовать следующим образом?Ограничитель цен python decorator
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)
Есть другие answers на StackOverflow, но они не позволяют определить знаменатель.
Это не освобождает семафор, если обернутая функция генерирует исключение. Вы можете использовать предложение 'try..finally', чтобы это произошло. –
@PaulMFurley приятно поймать! Я отредактировал код, не могли бы вы его проверить? –