celery_app.py 967 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. """
  2. Celery应用配置
  3. """
  4. from celery import Celery
  5. from celery.schedules import crontab
  6. from app.core.config import settings
  7. # 创建Celery应用
  8. celery_app = Celery(
  9. "ai_chat_tasks",
  10. broker=settings.CELERY_BROKER_URL,
  11. backend=settings.CELERY_RESULT_BACKEND
  12. )
  13. # Celery配置
  14. celery_app.conf.update(
  15. task_serializer="json",
  16. accept_content=["json"],
  17. result_serializer="json",
  18. timezone="UTC",
  19. enable_utc=True,
  20. task_track_started=True,
  21. task_time_limit=300, # 5分钟超时
  22. )
  23. # 定时任务配置
  24. celery_app.conf.beat_schedule = {
  25. # 每分钟检查一次主动消息
  26. "check-proactive-messages": {
  27. "task": "app.tasks.proactive_tasks.check_proactive_messages_task",
  28. "schedule": 60.0, # 每60秒执行一次
  29. },
  30. # 每天凌晨3点清理旧数据
  31. "cleanup-old-data": {
  32. "task": "app.tasks.cleanup_tasks.cleanup_old_messages_task",
  33. "schedule": crontab(hour=3, minute=0),
  34. },
  35. }