百度网盘后端二面:图生图工作流、任务管理与缓存一致性
本场面试题
- 图生图模型怎样选型并组织部署工作流?
- 平台的任务管理怎样设计?
- Redis 与数据库的缓存一致性怎样保证?
面经与参考答法
百度网盘后端二面:图生图工作流、任务管理与缓存一致性
公司为百度,业务背景为网盘,岗位为后端开发,轮次为二面。正文只给 9 月 11 日面试、9 月 14 日得知结果,未注明年份;具体团队未注明。作者明确说任务管理并非自己负责,本页不补写其项目贡献。
以下问题根据候选人公开自述选录,经历未获外部认证。原帖未提供完整现场答案;短答与例子均为编辑教学补充,不代表候选人实际作答、项目实现或企业标准答案。
选录图生图服务、平台任务管理、缓存一致性三组。其余参数、提示词优化、子任务复用、Spring AI Alibaba、缓存异常、RabbitMQ、索引、TCP 和旋转链表题本页未展开。
(1)图生图模型怎样选型并组织部署工作流?
先明确参考图、编辑目标、必须保持的内容和输出验收,再固定模型与管线版本,组织输入校验、前处理、生成、候选检查及结果保存。部署资源要在目标分辨率、精度、批量和并发下实测峰值显存、延迟与吞吐,不能只按参数量断言需要几张卡;原文没有披露具体模型和部署配置。 教学例子:商品换背景任务既要检查新背景,也要验证主体没有被改坏;同一模型在不同尺寸与并发下的资源需求可能不同。这里的商品场景仅为编辑示例,不是作者项目事实。
(2)平台的任务管理怎样设计?
用持久任务记录表达已排队、运行中、完成、失败或取消,提交端返回可查询的任务标识,执行器按受控并发推进并保存阶段结果。重试、超时、取消和重复请求各有明确处理,只有结果与终态确实保存后才宣布完成;这是一种教学设计,不是原平台已实现的方案。 教学例子:生成图片的请求已经被接受但仍在运行,前端应显示任务状态并允许继续查询,不能把受理成功当生成成功。作者未负责的实现细节不据此补齐。
(3)Redis 与数据库的缓存一致性怎样保证?
先说明数据库是权威事实及业务能容忍的陈旧窗口。常见 Cache-Aside 在数据库提交后使缓存失效,并配合 TTL 与失败补偿;仍要处理并发读旧值晚回填、删缓存失败等竞态。需要严格读到最新数据的路径应查权威存储或采用更强协议,不能宣称一次删缓存就实现强一致。 教学例子:读请求在更新前取到旧值,却在缓存失效后才回填,缓存仍会变旧。要对这条时序做验证,再选择版本、修复或绕过缓存等与业务一致性要求匹配的办法。