修复Celery递归调用错误
- 移除Django应用配置中的手动任务注册 - 使用Celery的imports配置确保任务模块被导入 - 避免在ready()方法中访问Celery应用 - 使用Celery的自动发现机制处理任务注册 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
a5d1dda65f
commit
c4eaeb6499
@ -6,34 +6,7 @@ class KnowledgeConfig(AppConfig):
|
||||
name = 'knowledge'
|
||||
|
||||
def ready(self):
|
||||
"""在Django应用准备好后注册Celery任务"""
|
||||
try:
|
||||
# 导入Celery应用
|
||||
from ops import celery_app
|
||||
|
||||
# 注册高级学习任务
|
||||
try:
|
||||
from knowledge.tasks.advanced_learning import (
|
||||
advanced_learning_by_document,
|
||||
batch_advanced_learning
|
||||
)
|
||||
celery_app.register_task(advanced_learning_by_document)
|
||||
celery_app.register_task(batch_advanced_learning)
|
||||
print("✅ Advanced learning tasks registered via app config")
|
||||
except ImportError as e:
|
||||
print(f"❌ Failed to register advanced learning tasks: {e}")
|
||||
|
||||
# 注册媒体学习任务
|
||||
try:
|
||||
from knowledge.tasks.media_learning import (
|
||||
media_learning_by_document,
|
||||
media_learning_batch
|
||||
)
|
||||
celery_app.register_task(media_learning_by_document)
|
||||
celery_app.register_task(media_learning_batch)
|
||||
print("✅ Media learning tasks registered via app config")
|
||||
except ImportError as e:
|
||||
print(f"❌ Failed to register media learning tasks: {e}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"⚠️ Failed to register tasks via app config: {e}")
|
||||
"""在Django应用准备好后,确保Celery任务能被发现"""
|
||||
# 不在这里手动注册任务,让Celery的自动发现机制处理
|
||||
# 这样可以避免递归调用问题
|
||||
pass
|
||||
|
||||
@ -30,4 +30,16 @@ app.conf.update(
|
||||
key) for
|
||||
key
|
||||
in configs.keys()})
|
||||
# 配置任务自动发现
|
||||
app.autodiscover_tasks(lambda: [app_config.split('.')[0] for app_config in settings.INSTALLED_APPS])
|
||||
|
||||
# 确保任务模块被导入
|
||||
app.conf.update(
|
||||
imports=[
|
||||
'knowledge.tasks.advanced_learning',
|
||||
'knowledge.tasks.media_learning',
|
||||
'knowledge.tasks.embedding',
|
||||
'knowledge.tasks.generate',
|
||||
'knowledge.tasks.sync'
|
||||
]
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user