From 3483d16c58bb4e46fa2328bbe3057325a21f8d22 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 29 Jul 2026 17:16:25 +0800 Subject: [PATCH] refactor: migrate pricing_data to share_cache Redis --- pricing/pricing.py | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/pricing/pricing.py b/pricing/pricing.py index 648296e..c554020 100644 --- a/pricing/pricing.py +++ b/pricing/pricing.py @@ -189,14 +189,15 @@ def data_mapping(ns, name, v): return v class PricingProgram: - pricing_data = {} + pass # pricing_data moved to Redis share_cache @staticmethod def on_hot_reload(data=None): """Event handler for hot_reload event. Clears pricing cache.""" from appPublic.log import debug debug(f'[pricing] on_hot_reload called, clearing pricing_data (data={data})') - PricingProgram.pricing_data.clear() + from appPublic.share_cache import cache_invalidate + await cache_invalidate('pricing') @staticmethod async def get_pricing_program(ppid): @@ -431,10 +432,9 @@ class PricingProgram: async def get_ppid_pricing(ppid): dat = curDateString() k = f'{ppid}.{dat}' - if _cache_enabled(): - d = PricingProgram.pricing_data.get(k) - if d: - return d + d = await cache_get('pricing', k, ttl=300) + if d: + return d env = ServerEnv() async with get_sor_context(env, 'pricing') as sor: sql = """select a.name, a.ownerid, a.providerid, a.currency, @@ -454,17 +454,8 @@ class PricingProgram: exception(f'{e}') raise e d = recs[0] - if _cache_enabled(): - PricingProgram.pricing_data[k] = d - dates = PricingProgram.pricing_data.get(ppid, []) - dates.append(dat) - dates_cnt = len(dates) - if dates_cnt > 2: - for i in range(dates_cnt - 2): - dk = f'{ppid}.{dates[i]}' - PricingProgram.pricing_data[dk] - dates = dates[-2:] - PricingProgram.pricing_data[ppid] = dates + from appPublic.share_cache import cache_set + await cache_set('pricing', k, d, ttl=300) return d async def buffered_charging(ppid, data):