超级文档
重构计划
登录
免费注册 / 登录

重构计划

编写人:刘洋
批准人:张伟
对象:通知发送改为异步
日期:0000-00-00
状态:已批准,开发中

一、重构目标

行政协同平台现在在访客签到、请假审批和预订成功的同一请求里同步调用企业微信。培训签到若带照片,发送会变慢,后面的文本待办一起排队。本次重构把外出通知改成先落本地队列、再由独立线程发送。单据保存不再等待企业微信返回。目标是签到接口在照片场景下仍低于 300 毫秒,文本待办在队列超过 50 条时 5 分钟内能消化。

二、现状

通知线程池 32 个,照片和文本共用。9月一次 40 人培训在 4 分钟内签到,线程被照片占满,23 条审批待办最久延迟 35 分钟。到达提醒因此在生产保持关闭,照片只存在访客单附件里。文本待办恢复正常,但培训场次再打开提醒时,同样的排队还会出现。重构完成后才重新评估是否打开到达提醒。

三、实施步骤

四、时间

步骤 2 在 9月25日前合入预发。步骤 3 和 4 在 9月27日完成。生产不放进 10月8日的用品发布,单独定在 10月11日 22:00,先对总部打开异步发送,观察一夜后再保留。到达提醒的开关仍默认关闭,要等异步稳定 7 天,由张伟另行决定。

五、风险与验收

  1. 队列写入失败时,单据仍然保存,页面提示消息可能延迟,由员工在单据详情查看状态。
  2. 重复发送用单据号加动作做幂等,同一条待办 10 分钟内只发一次。
  3. 验收:40 个并发签到下,签到 P99 低于 300 毫秒,文本待办 5 分钟内发完,抽查 10 条标题与单号一致。

王芳按这三条写用例。任何一条达不到,生产保持同步发送,异步代码留在预发继续改。9月24日预发已用 10 条文本待办试跑队列,10 条都在 20 秒内发出,照片线程池尚未接入。周敏把 10月11日 22:00 写进发布日历,并预留退回同步发送的 15 分钟。