fix(worker): #1970 注册 AI 标签 Celery 任务(worker.tag_atom_clip unregistered) #1987
Reference in New Issue
Block a user
Delete Branch "fix/1970-register-ai-tag-tasks"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
staging 上
worker.generate_atom_clips正常执行并派发worker.tag_atom_clip,但消费端报:同时伴随 KeyError;Doubao 视觉 API 一次未被调用,所有
ai_tags为 null。根因
apps/worker/worker_app/celery_app.py的celery_app.conf.imports只列了worker_app.tasks.atom_clips,漏列:worker_app.tasks.atom_clip_tagging(任务名worker.tag_atom_clip)worker_app.tasks.backfill_atom_clip_tags(任务名worker.backfill_atom_clip_tags)任务文件与装饰器均正确,但 worker 进程不会 import 这些模块,@task 装饰器从未执行。
修复
conf.imports补两个模块(worker 启动时自动 import 注册)tests/unit/test_1970_celery_ai_tag_registration.py:AST 静态断言 imports 配置 + 隔离子进程真实导入验证任务注册(用子进程规避 tests/unit 旧测试向 sys.modules 注入 celery_app MagicMock 不还原的污染问题)验证
tests/unit:15821 passed, 28 skipped影响面
仅 worker 启动导入列表新增两模块,无业务逻辑改动。合入后部署 staging 即可验证 AI 标签 has_text 端到端落库。
🚀 预览环境已部署
🗑️ 预览环境已清理
PR #1987 已关闭或合并,对应的预览环境已被清理。