FIT2CLOUD
记得 的图标

记得

688
124

「记得」(原名「重要日期」)帮你把容易忘记的事记下来:值得纪念的日子、身边的家人朋友,以及爱车的保险、年检、保养等到期日——到点之前它会提醒你,愿意公开的内容还能展示在博客前台。因为功能已从"记日期"扩展到"记日子、记人、记爱车",1.2.0 起由「重要日期」更名为「记得」;插件标识、数据、设置与前台地址都不受影响,直接升级即可。

1.2.4
发布于
>=2.26.0

v1.2.4 正式版 · 修复拖拽排序保存时的 503

测试与升级说明

本版已在全新 Halo 2.26 实例完成:自动化回归 50/50 PASS、浏览器端到端 13/13 PASS、附件库来源范围专项 5/5 PASS、拖拽排序专项 6/6 PASS(写入最大并发 = 1、全部 JSON Patch、无逐条 GET、无 5xx、顺序落库正确)。长期运行、多主题兼容、极端数据量等场景未覆盖。

升级后请强刷一次浏览器(Ctrl+Shift+R / Cmd+Shift+R):Halo 控制台会缓存插件的控制台包,不强刷时看不到新界面(如侧边栏没有「记得」、仪表盘小组件消失)。

修复:拖拽排序时的 503(反向代理把请求突发挡在了 Halo 之外)

  • 现象:拖拽人员 / 日期 / 座驾卡片调序时提示「保存排序失败:Request failed with status code 503」,弹窗里是反向代理返回的 503 Service Temporarily Unavailable,而 Halo 日志里没有任何记录

  • 根因

    1. 旧实现把整张表重新编号,并用 Promise.all 并发提交;每次提交还要「先 GET 最新版本 → 再 PUT」两步;
    2. 实测(4~6 个对象的列表拖一次):6 个 GET + 6 个 PUT,最大并发 6,全部集中在 45 毫秒内
    3. 站点前有反向代理(nginx / CDN)。nginx 的 limit_req(请求速率)与 limit_conn(并发连接数)默认以 503 自行拒绝,请求到不了 Halo——这正是"服务端查不到报错"的原因。
  • 修复:① 只写真正发生位移的连续区间(非 1…n 稠密数据回退整表重排,保证正确);② 改用 JSON Patch 只改 spec.sortOrder 一个字段,去掉 GET,请求数减半;③ 串行提交(间隔 40ms),最大并发降到 1;④ 对 429/5xx 退避重试 3 次;⑤ 报错文案点明「站点反向代理暂时不可用」而不是只抛状态码。

  • 实测对比

    修复前 修复后
    写请求 6 个 PUT(+6 个 GET) 5 个 PATCH(0 个 GET)
    最大并发 6 1
    结果 突发、易被代理 503 全部 2xx,顺序正确落库

提示:若站点反向代理限流设置非常严格(例如 limit_conn 只允许极少并发),仍建议检查一次 limit_req / limit_conn;本插件已不再产生突发请求。

验证(全新 Halo 2.26 实例)

  • 冒烟回归 halo-smoke.mjs 50/50 PASS;浏览器端到端 browser-121-e2e.mjs 13/13 PASS;附件库来源范围 verify-album-scope.mjs 5/5 PASS
  • 拖拽排序专项 verify-sort-save.mjs 6/6 PASS:断言写入最大并发 = 1、无逐条 GET、全部 PATCH、无 5xx、排序结果正确落库;
  • 顺带加固:冒烟脚本的就绪检测现在同时确认「插件接口 + 前台页面」连续两次正常,避免安装后 Halo 重启插件的窗口期(前台瞬时 500 Scheme not found,属 Halo 插件生命周期)被误判为失败。

兼容与升级

  • Halo 2.26 及以上;由 1.2.0 / 1.2.1 / 1.2.2 / 1.2.3 / 1.1.x 升级:停用 → 卸载 → 安装本版 → 启用,数据不会丢失
  • 若主题目录存在自定义覆盖文件 templates/important-dates.html,请用仓库 docs/theme-override/ 下最新版替换(或删除该文件使用插件默认模板);
  • 使用页面缓存 / 静态化插件时,升级后清理一次页面缓存。

资源下载

  • plugin-important-dates-1.2.4.jar