diff --git a/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart b/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart index 41da2b50..d7d035e7 100644 --- a/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart +++ b/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart @@ -64,10 +64,17 @@ class _TradingPageState extends ConsumerState { WidgetsBinding.instance.addPostFrameCallback((_) { ref.read(klinesNotifierProvider.notifier).loadKlines(_timeRanges[_selectedTimeRange]); }); - // 启动价格刷新倒计时(每秒递减,到0时重置为60) + // 与后端销毁调度器同步:销毁在每分钟第0秒执行,前端在第3秒刷新 + // 计算距离下一个整分钟第3秒的秒数 + final now = DateTime.now(); + final secsIntoMinute = now.second; + // 目标:每分钟的第3秒刷新(给销毁+写库留3秒余量) + _countdown = secsIntoMinute < 3 ? (3 - secsIntoMinute) : (63 - secsIntoMinute); _countdownTimer = Timer.periodic(const Duration(seconds: 1), (_) { setState(() { if (_countdown <= 1) { + // 倒计时归零,强制刷新价格数据 + ref.invalidate(currentPriceProvider); _countdown = 60; } else { _countdown--;