2026-09-17 22:42:13 +08:00
|
|
|
|
// packages/contracts/src/constants.ts
|
|
|
|
|
|
// 跨服务共享的运行时常量(Task 19 起)。队列名等标识符放契约包:api(生产者,
|
|
|
|
|
|
// complete 后入队)与 worker(Task 20/21 消费者)经同一常量引用,杜绝两处字符串漂移。
|
|
|
|
|
|
/** 照片处理 BullMQ 队列名(api enqueue → worker 消费;补偿扫描 Task 21)。 */
|
|
|
|
|
|
export const QUEUE_PHOTO_PROCESS = 'photo-process';
|
2026-09-18 13:34:35 +08:00
|
|
|
|
|
|
|
|
|
|
// ── P2 双地域同步与互动(决策初值 D07/D11,验收前可调;env 覆盖键见 .env.example)──
|
|
|
|
|
|
// 运行时可调项的默认值集中在此,服务实现(Task 3+)读 env、缺省回落本表;
|
|
|
|
|
|
// HEARTBEAT_MS 属 WS 消息契约,随 realtime.ts 导出(此处不重复定义避免重名导出)。
|
|
|
|
|
|
|
|
|
|
|
|
/** cn→ov 内容同步:content-batches 单批事件数上限(D11)。 */
|
|
|
|
|
|
export const SYNC_BATCH_SIZE = 100;
|
|
|
|
|
|
/** cn→ov 内容同步:outbox 推送轮询间隔毫秒(D11;高优先级事件不受此间隔约束)。 */
|
|
|
|
|
|
export const SYNC_PUSH_INTERVAL_MS = 2000;
|
|
|
|
|
|
/** ov 补漏对账轮询间隔毫秒(D11,5 分钟;按 sync_state 水位向 cn 请求 reconcile)。 */
|
|
|
|
|
|
export const SYNC_RECONCILE_INTERVAL_MS = 300000;
|
|
|
|
|
|
/** ov→cn 统计回传间隔毫秒(D11,60s 增量快照)。 */
|
|
|
|
|
|
export const STAT_RETURN_INTERVAL_MS = 60000;
|
|
|
|
|
|
/** 浏览去重窗口分钟(D07):窗口内同一 visitorId 不重复计数。 */
|
|
|
|
|
|
export const VISIT_WINDOW_MINUTES = 30;
|
|
|
|
|
|
/** 点赞批次幂等窗口小时:窗口外 batchId 拒绝重放(返回权威 total,不加计)。 */
|
|
|
|
|
|
export const LIKE_BATCH_WINDOW_HOURS = 24;
|
2026-09-18 17:51:55 +08:00
|
|
|
|
/** 点赞基础限速:单 sessionId 滑窗(=幂等窗口)累计 delta 上限,超限 429。 */
|
|
|
|
|
|
export const LIKE_SESSION_WINDOW_DELTA = 500;
|
|
|
|
|
|
/** 点赞基础限速:来源 IP 滑窗累计 delta 上限(NAT 出口共享,宽于单会话)。 */
|
|
|
|
|
|
export const LIKE_IP_WINDOW_DELTA = 2000;
|
|
|
|
|
|
/** likes.burst 合并窗口毫秒(技术方案 §7 短窗合并;0=不合并逐批即时广播)。 */
|
|
|
|
|
|
export const LIKE_BURST_MERGE_MS = 500;
|
2026-09-18 13:34:35 +08:00
|
|
|
|
/** 浏览上报 requestId 保留分钟:过期 requestId 拒绝重放(≥ 去重窗口)。 */
|
|
|
|
|
|
export const VISIT_REQUEST_TTL_MINUTES = 35;
|