feat: use cached rate from exchange_rate_history_setting (#4001)
Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com>
This commit is contained in:
@@ -25,6 +25,7 @@ from lnbits.core.services.notifications import (
|
|||||||
)
|
)
|
||||||
from lnbits.db import Filters
|
from lnbits.db import Filters
|
||||||
from lnbits.settings import settings
|
from lnbits.settings import settings
|
||||||
|
from lnbits.utils.cache import cache
|
||||||
from lnbits.utils.exchange_rates import btc_rates
|
from lnbits.utils.exchange_rates import btc_rates
|
||||||
|
|
||||||
audit_queue: asyncio.Queue[AuditEntry] = asyncio.Queue()
|
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]
|
rates_values = [r[1] for r in rates]
|
||||||
lnbits_rate = sum(rates_values) / len(rates_values)
|
lnbits_rate = sum(rates_values) / len(rates_values)
|
||||||
rates.append(("LNbits", lnbits_rate))
|
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)
|
settings.append_exchange_rate_datapoint(dict(rates), max_history_size)
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
logger.warning(ex)
|
logger.warning(ex)
|
||||||
|
|||||||
+1
-1
@@ -359,7 +359,7 @@ class FeeSettings(LNbitsSettings):
|
|||||||
|
|
||||||
|
|
||||||
class ExchangeProvidersSettings(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_size: int = Field(default=60, ge=0)
|
||||||
lnbits_exchange_history_refresh_interval_seconds: int = Field(default=300, ge=0)
|
lnbits_exchange_history_refresh_interval_seconds: int = Field(default=300, ge=0)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user