Hex-Dragon / PCL2

Plain Craft Launcher(我的世界启动器 PCL)的源代码,为支持社区研究而公开。
https://afdian.com/a/LTCat
Other
2.36k stars 180 forks source link

在检查更新时会重复使用同个缓存,导致不能及时更新 #4217

Open allMagicNB opened 2 months ago

allMagicNB commented 2 months ago

检查项

描述

在第一次点击 “检查更新” 后,会从 COS 缓存最新版本号文件,之后再次检查并不会缓存最新版本号文件,而是读取之前的缓存,导致缓存之后 PCL 发布更新无法检测到更新。

重现步骤

  1. 点击 “检查更新”
  2. 等待 PCL 发布新版本
  3. 再次点击 “检查更新”,发现提示是最新版本,没有更新提示弹窗

日志与附件

Log3.txt

allMagicNB commented 1 month ago

@LTCatt

Mxmilu666 commented 1 month ago

应该是 COS 缓存策略的锅?(

JingHai-Lingyun commented 1 month ago

这应该是 COS 缓存时间太久导致的 但如果不用缓存的话流量要爆炸了( 难搞

allMagicNB commented 1 month ago

这应该是 COS 缓存时间太久导致的 但如果不用缓存的话流量要爆炸了( 难搞

6 B 能炸?

Silverteal commented 1 month ago

原来这是 Bug 啊,我之前发现的时候还以为是防止狂点更新的 Feature ……


这和 COS 没关系,这是因为 PCL 只在启动时缓存最新版本信息,而点击“检查更新”时并不会刷新这个缓存,而是从本地的缓存中读取启动时获取的版本信息。

也就是说,当前版本这个“检查更新”的作用只有“在不小心关掉了更新提示的时候重新打开更新提示”。如果要获取新的版本信息,有效的做法是重启 PCL。

allMagicNB commented 1 month ago

这是因为 PCL 只在启动时缓存最新版本信息,而点击“检查更新”时并不会刷新这个缓存,而是从本地的缓存中读取启动时获取的版本信息。

你最好先看看日志。

Silverteal commented 1 month ago

这是因为 PCL 只在启动时缓存最新版本信息,而点击“检查更新”时并不会刷新这个缓存,而是从本地的缓存中读取启动时获取的版本信息。

你最好先看看日志。

刚刚注意到日志中多次请求了Notice.cfg。那应该是启动器内置有QPS限制导致我上次测试未能发现。

如果是这样(内置QPS限制)的话。这应该是WAI。