Napisz dekorator rate_limit(max_calls, period), który ogranicza liczbę wywołań funkcji za pomocą przesuwnego okna czasowego: nie więcej niż max_calls wywołań w ostatnich period sekund. Po przekroczeniu limitu wywołanie nie powinno być wykonywane. Uwzględnij, że funkcję mogą wywoływać różne wątki. Przykład: @rate_limit(max_calls=5, period=60) szóste wywołanie w ciągu minuty powinno zostać odrzucone.
Python
Opowiedz, czym się zajmowałeś w poprzednich miejscach pracy. Zaczynamy od firmy [firma].
Czym są komponenty stabilne i niestabilne?
Co oznacza zasada YAGNI?
Jak debugowałbyś test, który nie przechodzi?
Czym jest typowanie kacze?
Jak działa `with` i menedżer kontekstu?
Na jakim poziomie modelu OSI działają TCP i UDP i jaka jest między nimi różnica?
Jak indeksy współdziałają z warunkami WHERE ... LIKE w SQL?
Czy znasz wyrażenia regularne?
Z jakich bibliotek korzystałeś do interakcji z RabbitMQ i Kafka?
Jak wymieniać dane między procesami?
Do czego służą klasy abstrakcyjne?
Jaka jest złożoność dodawania i usuwania elementów na liście Pythona i od czego ona zależy?
Dlaczego serwer może odpowiadać na ping, ale być niedostępnym przez TCP/UDP, na przykład przez HTTP lub FTP?
Podaj przykład polimorfizmu w wbudowanych lub standardowych bibliotekach Pythona.
W jakim przypadku naruszany jest zasada otwartości-zamknięcia?
Jaka jest złożoność czasowa i dodatkowa pamięć rozwiązania z dwoma wskaźnikami?
Wymień wszystkie zasady SOLID.
Jakie parametry w Docker Compose należy ustawić, aby poprawić odporność na awarie i niezawodność usługi?