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((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
ref.read(klinesNotifierProvider.notifier).loadKlines(_timeRanges[_selectedTimeRange]);
|
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), (_) {
|
_countdownTimer = Timer.periodic(const Duration(seconds: 1), (_) {
|
||||||
setState(() {
|
setState(() {
|
||||||
if (_countdown <= 1) {
|
if (_countdown <= 1) {
|
||||||
|
// 倒计时归零,强制刷新价格数据
|
||||||
|
ref.invalidate(currentPriceProvider);
|
||||||
_countdown = 60;
|
_countdown = 60;
|
||||||
} else {
|
} else {
|
||||||
_countdown--;
|
_countdown--;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue