MemRelay-Operation: checkpoint-save:nixmsg-ckpt-20260930-0002 MemRelay-Resource: c8d1788e-e33a-46b2-a2f6-49dacaf90bb6
1.6 KiB
1.6 KiB
title, type, permalink, stable_id, scope, memory_type, project_id, usage_profile_id, status, revision, request_id, created_at, updated_at, tags
| title | type | permalink | stable_id | scope | memory_type | project_id | usage_profile_id | status | revision | request_id | created_at | updated_at | tags | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Checkpoint 2026-09-29 16:02:32 UTC [3077498558] | checkpoint | main/projects/25464650-ed5d-440e-b362-190f2852d451/checkpoint-2026-09-29-16-02-32-utc-3077498558 | c8d1788e-e33a-46b2-a2f6-49dacaf90bb6 | project | checkpoint | 25464650-ed5d-440e-b362-190f2852d451 | 0c9feb46-d06e-43cd-9ef0-c5813c84a998 | active | 1 | nixmsg-ckpt-20260930-0002 | 2026-09-29T16:02:32.204083+00:00 | 2026-09-29T16:02:32.204083+00:00 |
|
完成:用户衡量 SQLite 能否承担撤回、定时发送、固定延迟窗口。需求已更新(记忆 9cea62eb-5435-4fb1-af51-9699bb182b1a revision 3)。 结论(尚未开工):SQLite 仍适合。三条都是同一张消息表上的状态:pending(未到 send_at)、offline_hold(到点不在线且保留)、delivering(已交给在线连接、等确认)、accepted、recalled、expired、dropped。延迟和定时都是 send_at;相对延迟由服务器时钟计算。离线保留时间从开始投递的那一刻起算。未出服务器的撤回用条件更新保证成功;已推到设备但未确认的撤回与确认谁先到算谁。tag 的订阅者在到点发送时再解析。单进程轮询到期消息即可,1000 设备不需要 Redis。 验证:未写代码。 下一步:等用户确认这套状态语义,尤其是离线保留从投递时刻起算、以及已推送未确认时撤回是争赛。确认后再开工。 给下个会话:项目 ID 25464650-ed5d-440e-b362-190f2852d451,目录 e:/code/NixMsg,仓库仍为空。