💡 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_klucza musi 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.