悉思定时发布任务完成一轮算法与口径修复,发布会话按记录标识在随机窗口内均分槽位并整批重排,发布时间既保持单调递增又维持自然分布。定时发布的可用性直接决定批量内容上线的节奏,本轮修复让发布时间曲线与人工运营的排布习惯接近。
早期实现的发布时间在窗口内独立取随机值,集中发布时会出现相邻内容时间几乎重合、同批次内容时间倒挂两类现象。倒挂会让列表页按发布时间排序时出现顺序跳动,时间过于集中则让发布节奏一眼看出机器痕迹。
修复思路为分槽散布:把发布窗口按批内序号均分为等长槽位,每个槽位内取一个随机偏移,得到的时间序列天然单调递增,同时保留随机窗口的散布特征。整批数据在写入前统一重排,历史数据中的倒挂记录一并修正,修正过程不改变内容数量与栏目归属。
该任务涉及发布时间、创建时间与更新时间三个字段,本轮统一了写入规则:发布时间取会话计算值,创建时间与更新时间随发布时间同步,避免出现内容发布时间早于创建时间的记录。任务跳过场景补充日志,跳过原因与命中规则在任务日志中可查。
| 字段 | 取值规则 | 异常场景 |
|---|---|---|
| 发布时间 | 按槽位计算并单调递增 | 窗口内无可用槽位时跳过并记日志 |
| 创建时间 | 与发布时间同步 | 缺失时按发布时间回填 |
| 更新时间 | 与发布时间同步 | 批量重排时统一刷新 |
三字段统一后,后台内容列表按时间排序、前台列表按发布时间排序、数据统计按天聚合三处结果互相吻合,跨表统计不再需要额外的时间兜底逻辑。内容列表的时间列按同一口径展示,导出数据时不需要再做时间对齐处理,运营核对发布节奏的效率明显提高。
后台数据分析页的两个接口在查询时对日期列做了函数包裹,索引因此失效并退化为全表扫描。修复方式为把函数条件下推为区间条件,比较字段保持裸列形式,两个接口的响应时间回到索引扫描的量级。
这次修复同时确立了日期条件查询的写法约定:日期维度筛选统一转换为区间条件,不在比较字段外层再套函数,新接口按同一约定实现,避免同类问题重复出现。两个接口的响应时间在数据量增长后保持稳定,报表页面的首屏等待时间同步下降,分页与聚合统计的耗时差异也回到预期范围。
标签使用次数改为仅统计已发布内容,草稿内容的标签不再计入,标签云与标签详情页的数量口径与前台实际可访问内容一致。内容批量修改状态功能上线,批量操作后的计数刷新在同一链路完成,计数失真的根因同步修复。批量改状态后的列表按当前筛选条件重建,状态变更结果在列表中直接可见。
定时发布任务类型按内容发布场景单独提供,任务参数中可查看发布节奏与次数上限说明,放量过程按批次推进,必要时可暂停后续批次。任务执行结果写入任务日志,成功、跳过与失败三类结果分别统计。
评论
加载中...