Files
huangguo_server/91迭代配置改动点.md
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

6.3 KiB
Raw Permalink Blame History

91迭代配置改动点

适用分支:feat/91-iteration

本文只记录环境配置、后台业务配置和上线数据处理。账号、密钥及各环境真实配置值不得写入本文。

一、App运行配置

文件:config/app.json

新增根节点:

{
  "shortRecommend": {
    "enabled": true,
    "requestTimeoutMs": 3000,
    "maxBatches": 5,
    "scanMultiplier": 5,
    "keyTTLHours": 72
  },
  "laoSiJiAiMate": {
    "appId": "<按环境填写>",
    "apiKey": "<按环境填写,不得写入Git或文档>",
    "apiUrl": "<按环境填写>"
  }
}

字段说明:

字段 默认值/要求 说明
shortRecommend.enabled 未配置默认 true 是否使用全局短视频环形队列
requestTimeoutMs 默认 3000,范围 10010000 App读取推荐队列超时
maxBatches 默认 5,范围 120 过滤失效视频时最多补取批次
scanMultiplier 默认 5,范围 120 单批候选扫描倍数
keyTTLHours 默认 72,有效范围 24720 推荐队列、偏移等Redis键TTL
laoSiJiAiMate.* 三项必须完整 AI女友V2第三方配置,仅App使用

base.totalWatch 不再作为免费观看次数来源,请从 app 配置移除。非VIP免费观看总次数改为通过后端系统配置 sys_confgpCode=common)中的 totalWatchCount 控制。

二、SKD运行配置

文件:config/skd.json

新增根节点:

{
  "shortRecommend": {
    "enabled": true,
    "cron": "CRON_TZ=Asia/Shanghai 0 5/10 * * * ?",
    "keyTTLHours": 72,
    "maxInitializationWrites": 50000
  }
}

字段说明:

字段 默认值/要求 说明
enabled 未配置默认 true 是否注册推荐队列任务并在启动时补建
cron 每10分钟健康检查 当天队列健康时不会重复生成
keyTTLHours 默认 72 必须与App保持一致
maxInitializationWrites 生产未配置默认 50000;非生产默认 0 首次推荐分初始化写入保护;显式 0 表示关闭限制

正式发布前必须统计未初始化短视频数。若超过保护阈值,任务会在任何批量写入前终止;应选择提前初始化、提高阈值或经确认后显式关闭限制。

三、Web运行配置

config/web.json 没有新增字段。Web需要发布代码以提供管理后台配置接口,但不需要新增运行配置。

四、后台和数据库业务配置

这些数据不会随Jenkins代码发布从测试库迁移到生产库,各环境需要单独配置。

4.1 亚模块配置(module_conf

新增字段:

  • onlineAtofflineAt
  • excludeLatest
  • excludeRecommend
  • searchOnlyWhenInactive
  • haiJiaoStyle.sortRules[].refreshMode
  • haiJiaoStyle.sortRules[].randomCandidateN

历史热门排序 val=2 未配置刷新字段时,会兼容为 RANDOM_TOP_N、候选数 30,不依赖可编辑标题。

4.2 付费引导(payment_guide

按环境配置场景、用户分层、样式、文案、套餐、跳转、启用状态和有效期。 场景新增 DISCOUNT_COUNTDOWN;该场景只配置卡片内容,固定2小时倒计时由前端在每次App冷启动时本地重新创建,后端不使用 durationSeconds 计算倒计时。 新增 HOME_NEW_USER_FREE_TRIAL,用于“首页新用户免费 X 次试看”,X 读取 totalWatchCount;旧 HOME_NEW_USER 保留兼容代码但不再向 App/Web 返回。HOME_NEW_USER_FREE_TRIALHOME_OLD_USER 共用系统配置 paymentGuideHomeEnabled 作为首页场景总开关。 VIP_CONTENT_UPDATE.videoLimit 未配置或为 0 时默认返回4条,最大20条。 曝光记录集合 payment_guide_impression 由程序自动写入,不需初始化。

4.3 评论区Bannerscene_banner

场景固定为 COMMENT_TOP,配置图片/GIF、内外链、排序、启用状态和上下架时间。 没有默认Banner,测试环境数据不会自动进入生产。

4.4 VIP卡片A/Bvip_card_experiment

按环境使用真实套餐ID配置:

  • A/B流量比例
  • 套餐列表与默认套餐
  • skinKey
  • productBadges
  • uiConfig.backgroundImage
  • uiConfig.badgeStyles
  • 实验结束时间

默认没有启用实验;未发布实验时会员套餐接口保持原有返回。统计事件集合由程序自动写入。

4.5 系统配置(sys_conf

  • 新增 freeTrialBadgeEnabled=true:服务启动时自动补充,上线前确认最终开关值。
  • 新增 totalWatchCount(int):非VIP用户单日免费观看上限,可编辑/可查看,默认值 3
    • 示例:把 totalWatchCount 设置为 3,则 totalWatchCount 返回 3
  • 新增 paymentGuideHomeEnabled=true(bool):首页付费引导共用开关,同时控制 HOME_NEW_USER_FREE_TRIALHOME_OLD_USER,可在 Web 系统通用配置中查看和编辑。
  • 复用 aiGirlFriend=trueAI女友V2启用条件之一。

五、历史数据处理

media 新增 latestPublishedAt,历史数据必须回填,否则动漫/漫画最新排序会受缺失值影响:

db.media.updateMany(
  {
    status: 1,
    isDelete: false,
    latestPublishedAt: { $exists: false }
  },
  [
    {
      $set: {
        latestPublishedAt: {
          $ifNull: [
            "$contentUpdateTime",
            {
              $ifNull: [
                "$updateTime",
                "$createdAt"
              ]
            }
          ]
        }
      }
    }
  ]
)

执行前后应分别统计缺失数量并抽样核对排序结果。该脚本需单独执行,代码发布不会自动回填。

六、基础设施与发布范围

  • 不新增Kafka Topic、MQ、Redis实例、端口或操作系统crontab。
  • 继续使用现有MongoDB和Redis。
  • App/H5接口发布 BUILD_ITEM=app
  • 管理后台接口发布 BUILD_ITEM=web
  • 推荐队列生成任务发布 BUILD_ITEM=skd
  • 服务启动会自动创建新增集合和索引,需确认MongoDB账号具有建索引权限。
  • Redis推荐队列、版本、用户偏移及红点缓存均由程序自动创建,无需手工初始化。

七、不属于本分支的配置

  • 测试环境手工调整的 imv2.baseUrlimv2.dynamicConfigDomainimv2.socketUrl 是环境修复,不是 feat/91-iteration 新增配置。
  • H.265相关配置属于其他开发分支,不计入本迭代配置改动。