Sobes.tech

Python

Kuidas peaks töötama asünkroonne TTL-vahemälu, kui see pääseb juurde välisele Redis-vahemälule, mis võib vastata aeglaselt?

30

Ülesanne: kirjutada dekoratsioon, mis salvestab funktsiooni tulemuse vahemällu teatud aja jooksul (ttl). TTL määratakse sekundites (int). 1) kirjeldage selle koodi põhiskeemi kõigi võimalike nurkjuhtumitega. 2) (valikuline) rakendage koodis import time # rakendamine pass # print(f"Func in cache: {}") # print(f"Time is valid: {}") @ttl_cache(ttl=1) def multiplier(a, b, **kwargs): return a * b print(f'praegu={time.time()}') print(f'tulemus={multiplier(5, 5, x=1)}; aeg={time.time()}') print(f'tulemus={multiplier(5, 5, x=1)}; aeg={time.time()}') print(f'tulemus={multiplier(2, 5, x=1)}; aeg={time.time()}') time.sleep(2) print(f'tulemus={multiplier(5, 5, x=1)}; aeg={time.time()}')

29
/5