article_quality_title.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. """标题质量评分 XXL-JOB Handler
  2. XXL-JOB Admin:
  3. 执行器: long-articles-agentic-src
  4. 处理器: articleQualityTitle
  5. 参数: limit=100
  6. 超时: 建议 ≥600s(100条≈5批×30s+延迟)
  7. """
  8. import logging
  9. from src.infra.xxl_jobs import xxl_job
  10. from src.domains.content_quality import ArticleQualityTitle, ContentQualityConst
  11. from src.handlers._utils import get_db, parse_limit
  12. from src.handlers._logging import get_task_logger
  13. logger = logging.getLogger(__name__)
  14. @xxl_job("articleQualityTitle")
  15. async def article_quality_title(param: str) -> dict:
  16. limit = parse_limit(param, ContentQualityConst.TITLE_DEAL_LIMIT)
  17. tlog = get_task_logger("articleQualityTitle")
  18. await tlog.task_started(limit=limit)
  19. try:
  20. mysql = get_db().mysql_manager("long_articles")
  21. service = ArticleQualityTitle(mysql, task_logger=tlog)
  22. result = await service.deal(limit=limit)
  23. except Exception as e:
  24. logger.exception("标题评分失败")
  25. await tlog.task_failed(e)
  26. return {"code": 500, "msg": "异常"}
  27. logger.info(
  28. "done: seeded=%d evaluated=%d",
  29. result["seeded"],
  30. result["evaluated"],
  31. )
  32. await tlog.task_completed(**result)
  33. return {
  34. "code": 200,
  35. "msg": f"seeded={result['seeded']} evaluated={result['evaluated']}",
  36. }