_const.py 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. """文章域常量"""
  2. class DemandSearchArticleConst:
  3. """文章域所有常量的聚合根,服务类继承此类即可通过 self. 访问"""
  4. # ═══════════════════════════════════════════════════════════════
  5. # 表名
  6. # ═══════════════════════════════════════════════════════════════
  7. QUEUE_TABLE = "demand_search_queue"
  8. RELATION_TABLE = "demand_search_article_relation"
  9. DETAIL_TABLE = "demand_search_article_detail"
  10. CACHE_TABLE = "demand_search_cache"
  11. # ═══════════════════════════════════════════════════════════════
  12. # 队列状态
  13. # ═══════════════════════════════════════════════════════════════
  14. class QueueStatus:
  15. INIT = 0
  16. PROCESSING = 1
  17. SUCCESS = 2
  18. FAIL = 99
  19. # ═══════════════════════════════════════════════════════════════
  20. # 搜索词类型(video 解构驱动,config_code → key_type)
  21. # ═══════════════════════════════════════════════════════════════
  22. class KeyType:
  23. INSPIRATION_SUBSTANCE = "INSPIRATION_SUBSTANCE"
  24. VIDEO_INSPIRATION = "VIDEO_INSPIRATION"
  25. VIDEO_KEYPOINT = "VIDEO_KEYPOINT"
  26. VIDEO_TITLE = "VIDEO_TITLE"
  27. @classmethod
  28. def all_types(cls) -> tuple:
  29. return (
  30. cls.INSPIRATION_SUBSTANCE,
  31. cls.VIDEO_INSPIRATION,
  32. cls.VIDEO_KEYPOINT,
  33. cls.VIDEO_TITLE,
  34. )
  35. # ═══════════════════════════════════════════════════════════════
  36. # 搜索状态: 0→1→2 / 0→1→99
  37. # ═══════════════════════════════════════════════════════════════
  38. class SearchStatus:
  39. INIT = 0 # 待拉取详情
  40. PROCESSING = 1 # 拉取详情中
  41. SUCCESS = 2 # 拉取详情成功
  42. FAIL = 99 # 详情拉取失败
  43. # ═══════════════════════════════════════════════════════════════
  44. # 搜索参数
  45. # ═══════════════════════════════════════════════════════════════
  46. MAX_SEARCH_PAGES = 3 # 每个搜索词最多翻多少页
  47. SEARCH_PAGE_SIZE = 10 # 每页结果数(微信 API 默认)
  48. BATCH_INSERT_SIZE = 100 # 批量写入每批行数
  49. CACHE_TTL_DAYS = 10 # 搜索缓存有效期(天)
  50. SEARCH_INTERVAL_SEC = 5 # 搜索页间延迟(秒)
  51. DETAIL_INTERVAL_SEC = 3 # 详情拉取条间延迟(秒)
  52. # ═══════════════════════════════════════════════════════════════
  53. # XXL-JOB 参数
  54. # ═══════════════════════════════════════════════════════════════
  55. DEAL_LIMIT = 2000 # 单次搜索任务取队列条数上限
  56. __all__ = ["DemandSearchArticleConst"]