从磁盘恢复的过时‘检查中……'状态是虚假的,因此我们六个存储... 笔记

从磁盘恢复的过时‘检查中……'状态是虚假的,因此我们六个存储单元中有一个没有文件。

Notifio 是一款桌面应用程序,旨在监控租赁搜索页面并向用户发出新房源的警报。它管理六个不同的应用程序状态,每个状态都有其独特的生命周期规则。这些规则源于对每个状态所代表内容的根本性追问。搜索、电子邮件和许可证等配置设置存储于 config.json 中,并在所有操作中持久保留。搜索页面的基线被保存至磁盘,但在应用程序重启后不再被信任,将在下一次检查时重新评估。最近的发现记录存储于 finds.json 中,设计为能够跨越应用程序重启和搜索重新指向而存活,充当至关重要的历史记录。回复账本存储于 ledger/replies.ndjson 中,用于跟踪发出的消息,且为追加写入,以确保崩溃后的数据完整性,并通过压缩处理其增长。升级授权信息保存于 entitlement.json 中,包含一个过时标志,用以指示其有效性。每个搜索运行实例的实时状态(跟踪当前检查及状态)有意仅保留在内存中,以避免呈现过时信息。此内存状态至关重要;若崩溃后将其持久化,将歪曲应用程序当前的活动状态。停止按钮会清除此实时状态,因为所描述的运行已经结束。对该实时状态的变更在发送给渲染器之前会被合并,以避免对其造成过载。每个搜索页面的基线由其 URL 的哈希值标识,而非其在列表中的位置,从而避免了与列表编辑相关的错误。基线的年龄由文件的修改时间戳确定,无需单独的 lastCheckedAt 字段。发现记录和回复账本是历史记录,不得被与它们无关的操作删除。发现历史与每个搜索的快照保持分离,因为否则重新指向搜索将擦除宝贵的历史数据。回复账本的追加写入特性配合压缩机制,提供了崩溃安全性并处理消息跟踪。最后,每个状态的生命周期由其底层目的决定:用户意图、已发生的事件、外部世界信息或瞬态实时数据。