ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

多微信号统一管理实战:一个后台管几十个机器人

多微信号统一管理实战:一个后台管几十个机器人 单号机器人是玩具几十个号一起跑才是生意。客服矩阵、私域矩阵、城市分号一旦上量核心矛盾就从能不能收发变成怎么统一调度、怎么不串号、怎么知道哪个号掉了。这篇讲清多微信号统一管理后台的四个关键设计。参考资料WTAPI框架接口字段见api文档weiti.apifox.cn 。一、标识体系appId管租户instanceId管号WTAPI用二层标识天然支持多账号appId标识你的业务方租户instanceId标识一个具体在线微信号。一个appId下挂几十个instanceId权限、统计、配额都按这两层切分。后台所有数据表都必须带 instance_id这是多账号不串数据的底线。二、消息路由哪号进哪号回Webhook回调带instanceId投递队列时原样带上回复时强制用同一个实例app.route(/webhook,methods[POST])defwebhook():drequest.json redis.lpush(msg_queue,json.dumps({instanceId:d[instanceId],fromWxid:d.get(fromWxid),content:d.get(content,),}))return{code:1000}defworker():whileTrue:_,rawredis.brpop(msg_queue)mjson.loads(raw)send_text(m[instanceId],m[fromWxid],reply_of(m))会话状态、去重键、聊天记录全部按instance_id:from_wxid复合键隔离同一个用户在不同号的对话绝不互通。三、统一收件箱一张表聚合所有号CREATETABLEmessages(idBIGINTPRIMARYKEYAUTO_INCREMENT,instance_idVARCHAR(64)NOTNULL,from_wxidVARCHAR(64)NOTNULL,contentTEXT,created_atDATETIME,INDEXidx_inst_time(instance_id,created_at));后台按instance_id过滤就是单号视图不加过滤就是全局收件箱运营在一个页面处理所有号的会话。四、健康调度自动摘除掉线号多账号最怕某个号悄悄掉线还在被分配任务。建一张实例状态表定时轮询在线状态离线的从发送池摘除并告警恢复后自动加回。发送时若业务没指定号按轮询或队列最短策略选在线实例把负载和风控压力摊开。defpick_instance():online[iforiininstancesifstatus_of(i)online]returnmin(online,keylambdai:queue_len(i))把标识、路由、收件箱、健康调度这四件事做进统一后台几十个号就像一个号一样好管业务方甚至感知不到多账号的存在。
返回列表