但是只要事件在 24 小时刷新间隔内被提前缓存进了本地数据库, 这个 RSS/Atom 路由生成输出的时候就会立马读取, 比如有人主动用 njump 预览了一个还没有进入缓存的作者的事件, 那这个 RSS/Atom Feed 排序就直接乱掉了, 而没有被主动用 njump 预览过的事件就不会进入 Feed.

现在魔改了一下, 把 RSS/Atom 路由单独进行单独的判断, 不缓存也不从本地数据库读缓存事件, 每次有请求才立马从预设的外部中继里请求并生成 Feed, 请求数量也从默认的 100 条调到了一般 RSS Feed 常用的 20 条. :eveonecat_coffeebath: (实际生成 Feed 的的 entry 数量可能会多于这个数)

虽然 njump 给 Feed 的 .xml 设置了缓存控制标头, 但是基本上绝大多数的 RSS 阅读器都不会遵守, 于是还得用 CDN 强行给 .xml 缓存一遍(虽然缓存标头还是遵守源服务器).

PS: 总感觉还会有什么奇怪bug.

Reply to this note

Please Login to reply.

Discussion

发现问题了, 预设中继里面可能有些笔记根本没有广播到, 于是可能会出现每次生成的 Feed 都可能不一样的问题... 感觉比排序出问题还严重了.

给获取作者最新笔记加了一个新条件, 每次获取的时候都会从外部服务器请求最新笔记然后存储到本地数据库. 单独生成 RSS Feed 的也会重复一次, 但是会从本地数据库查询生成 RSS Feed, 这下不仅及时性提升了, 不一致的问题解决了, 还把 entry 数量真正限制在了 20 条, 满意. :eveonecat_congrats:

PS: 希望没有bug了.