diff --git a/lnbits/core/tasks.py b/lnbits/core/tasks.py index a27756ce2..7fb304862 100644 --- a/lnbits/core/tasks.py +++ b/lnbits/core/tasks.py @@ -25,6 +25,7 @@ from lnbits.core.services.notifications import ( ) from lnbits.db import Filters from lnbits.settings import settings +from lnbits.utils.cache import cache from lnbits.utils.exchange_rates import btc_rates audit_queue: asyncio.Queue[AuditEntry] = asyncio.Queue() @@ -155,6 +156,11 @@ async def collect_exchange_rates_data() -> None: rates_values = [r[1] for r in rates] lnbits_rate = sum(rates_values) / len(rates_values) rates.append(("LNbits", lnbits_rate)) + cache.set( + f"btc-price-{currency}", + lnbits_rate, + expiry=settings.lnbits_exchange_rate_cache_seconds, + ) settings.append_exchange_rate_datapoint(dict(rates), max_history_size) except Exception as ex: logger.warning(ex) diff --git a/lnbits/settings.py b/lnbits/settings.py index 49e9eb5c6..22f676bd9 100644 --- a/lnbits/settings.py +++ b/lnbits/settings.py @@ -359,7 +359,7 @@ class FeeSettings(LNbitsSettings): class ExchangeProvidersSettings(LNbitsSettings): - lnbits_exchange_rate_cache_seconds: int = Field(default=30, ge=0) + lnbits_exchange_rate_cache_seconds: int = Field(default=60, ge=0) lnbits_exchange_history_size: int = Field(default=60, ge=0) lnbits_exchange_history_refresh_interval_seconds: int = Field(default=300, ge=0)