fix(mining-app): 价格刷新倒计时与后端销毁调度器同步
- 倒计时不再从页面打开时任意起点开始 - 自动计算距下一个整分钟第3秒的剩余秒数作为初始值 (销毁在每分钟第0秒执行,留3秒余量等数据库写完) - 倒计时归零时通过 ref.invalidate 主动刷新价格数据 - 确保每次刷新都能拿到最新的销毁后价格 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
abb0da36a9
commit
ef5ac2bf94
|
|
@ -64,10 +64,17 @@ class _TradingPageState extends ConsumerState<TradingPage> {
|
|||
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--;
|
||||
|
|
|
|||
Loading…
Reference in New Issue