kevin9327
0da6aea52a
fix(preferences): 轮询间隔写入走 save(), 不再覆盖并发写入的其它偏好
在设置里拖动「行情轮询间隔」的同时切换另一个开关(比如实时行情总开关),
刷新页面后那个开关又变回原样 —— 它被间隔的写盘整体覆盖掉了。
preferences.save 的 docstring 记着这个坑: "FastAPI 同步端点跑线程池,
并行 PUT 各自基于旧快照写盘会互相覆盖 (实测: 压缩总开关并行写分时/日K
两键, 后写者把先写者覆盖)", 所以它的 read-modify-write 整段在 _SAVE_LOCK
里。set_realtime_quote_interval 是唯一没跟上的 setter: 它自己 load() 拿快照,
再 _path().write_text() 全量写回, 全程不持锁。两个 PUT 在飞时, 后写的那份
旧快照会把先写的键抹掉。
改成 save({"realtime_quote_interval": interval}) —— 与本模块其余全部 setter
(set_sentiment_exclude_st / set_pipeline_pull_types / set_review_schedule ...)
一致, 返回值与缓存失效行为不变。
2026-09-10 08:13:24 +09:00
..
2026-07-26 12:19:55 +08:00
2026-06-18 17:18:23 +08:00
2026-09-05 15:41:15 +08:00
2026-09-04 12:50:50 +08:00
2026-07-08 18:10:19 +08:00
2026-07-03 14:11:27 +08:00
2026-08-30 19:05:31 +08:00
2026-08-05 17:56:27 +08:00
2026-09-05 15:41:15 +08:00
2026-09-09 11:09:48 +08:00
2026-09-09 07:10:35 +09:00
2026-09-09 11:09:48 +08:00
2026-09-05 22:49:52 +08:00
2026-08-30 19:05:30 +08:00
2026-09-04 16:37:06 +08:00
2026-09-09 16:30:20 +08:00
2026-09-06 23:16:27 +08:00
2026-09-09 16:30:20 +08:00
2026-08-30 19:05:21 +08:00
2026-09-04 12:03:06 +08:00
2026-09-09 07:33:28 +09:00
2026-09-02 20:20:38 +08:00
2026-09-09 11:09:48 +08:00
2026-08-31 16:50:21 +08:00
2026-07-05 22:57:46 +08:00
2026-07-06 17:00:56 +08:00
2026-09-09 07:10:55 +09:00
2026-09-09 09:04:28 +08:00
2026-09-04 11:59:00 +08:00
2026-08-31 16:50:21 +08:00
2026-08-16 23:39:07 +08:00
2026-07-08 18:10:19 +08:00
2026-09-04 12:03:06 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-09-01 13:05:21 +08:00
2026-06-23 21:47:29 +08:00
2026-09-09 11:09:48 +08:00
2026-09-10 08:13:24 +09:00
2026-09-07 15:25:41 +08:00
2026-09-04 12:19:35 +08:00
2026-08-23 19:12:57 +08:00
2026-09-04 11:59:00 +08:00
2026-09-03 13:45:12 +08:00
2026-08-31 16:50:21 +08:00
2026-09-04 12:03:06 +08:00
2026-07-08 18:10:19 +08:00
2026-09-09 16:10:03 +08:00
2026-09-09 15:49:21 +08:00
2026-08-30 19:05:28 +08:00
2026-09-02 14:48:32 +08:00
2026-09-02 14:48:32 +08:00
2026-09-05 21:14:53 +09:00
2026-07-09 16:35:21 +08:00