💡 Prezentacja funkcji: trwałe buforowanie wtyczek¶
💾 Buforowanie zapewniające wydajność, niezawodność i wydajność sieci¶
System oferuje teraz centralny, trwały mechanizm buforowania („simple_plugin_cache”) zaprojektowany w celu zmniejszenia obciążenia sieci zewnętrznej (np. pogody, interfejsów API tłumaczeń) i przyspieszenia wykonywania. Pamięć podręczna jest trwała, co oznacza, że wpisy przetrwają ponowne uruchomienie usługi.
Cel: Zmniejszenie ruchu sieciowego, zapobieganie nadużyciom API i zapewnianie szybkich reakcji awaryjnych w przypadku przerw w świadczeniu usług zewnętrznych.
1. Podstawowa implementacja buforowania (oparta na TTL)¶
Aby buforować wynik funkcji, musisz zaimplementować podstawową logikę w trzech blokach: Sprawdź, Wykonaj i Zapisz.
1.1 Import i konfiguracja¶
Dodaj niezbędne importy i zdefiniuj stałą czasu wygaśnięcia (TTL) w skrypcie wtyczki (np. weather.py):
KOD_BLOKU_0
1.2 Logika buforowania w bloku execute¶
Funkcja „execute” musi najpierw podjąć próbę pobrania wyników z pamięci podręcznej przed wykonaniem jakichkolwiek wywołań sieciowych.
KOD_BLOKU_1
2. Zaawansowane tryby buforowania¶
A. Stałe (wieczne) buforowanie¶
Jeśli wynik nigdy nie wygaśnie (np. wyszukiwanie konfiguracji statycznej), pomiń całkowicie parametr ttl_sekundy.
KOD_BLOKU_2
B. Wymagania dotyczące klucza pamięci podręcznej (key_args).¶
argumenty_kluczamusi być krotką zawierającą wszystkie zmienne definiujące wynik (np.(miasto, język, system_jednostek)).Mechanizm buforowania automatycznie konwertuje typowe obiekty Pythona, które nie nadają się do serializacji w formacie JSON, takie jak
pathlib.Path, na ciągi znaków w celu wygenerowania klucza.