scheduler_main.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # scheduler_main.py - 爬虫调度主程序
  2. import asyncio
  3. import traceback
  4. import sys
  5. import os
  6. from application.config.common import AliyunLogger
  7. from application.spiders.universal_crawler import AsyncCrawler
  8. async def main():
  9. """主函数"""
  10. # 设置日志
  11. logger = AliyunLogger(platform="system", mode="manager")
  12. try:
  13. # 从环境变量获取配置
  14. config_topic = os.getenv("CONFIG_TOPIC", "crawler_config")
  15. config_group = os.getenv("CONFIG_GROUP", "crawler_config_group")
  16. # 创建爬虫控制器
  17. controller = AsyncCrawler(
  18. platform: str,
  19. mode: str,
  20. )
  21. # 启动控制器
  22. await controller.run()
  23. # 保持主线程运行
  24. while True:
  25. await asyncio.sleep(60)
  26. except Exception as e:
  27. tb = traceback.format_exc()
  28. message = f"主程序发生错误: {e}\n{tb}"
  29. logger.logging(code="1006", message=message)
  30. sys.exit(1)
  31. if __name__ == "__main__":
  32. # 运行主事件循环
  33. asyncio.run(main())