main.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # -*- coding: utf-8 -*-
  2. '''
  3. 全局定时
  4. 例子
  5. scheduler.add_job(midnight_task, 'cron', hour=0, minute=0) # 每天定时执行
  6. scheduler.add_job(test_error, 'interval', seconds=2) # 循环间隔多少秒执行
  7. scheduler.add_job(weekly_task, 'cron', day_of_week='mon,wed,sat', hour=22, minute=30) # 添加定时任务,设置为每周一、三、六晚上10点30分执行
  8. scheduler.add_job(lambda: apprcn.main(), 'cron', hour='0-23', minute=0) # 每天的每小时整点执行一次
  9. '''
  10. from apscheduler.schedulers.background import BackgroundScheduler
  11. import time
  12. # 日志类
  13. import utils_daily_logs_generate
  14. import utils_daily_logs_send
  15. import utils_timing_remove_data
  16. # 新闻类爬虫
  17. import news_get_apprcn
  18. import news_get_chiphell
  19. import news_get_hello_github
  20. import news_get_news
  21. import news_get_36kr_info
  22. import news_get_36kr_key
  23. # 大乐透
  24. import spider_get_and_check_dlt
  25. # 发送新闻汇总邮件
  26. import utils_news_data_collation
  27. print('\n 创建定时任务')
  28. # 创建 BackgroundScheduler 实例
  29. scheduler = BackgroundScheduler()
  30. # 每天 0 点创建日志文件
  31. scheduler.add_job(lambda: utils_daily_logs_generate.LogsHandle().logs_generate(), 'cron', hour=0, minute=0)
  32. # 每天 23.59 分发送当天日志
  33. scheduler.add_job(lambda: utils_daily_logs_send.LogsHandle().logs_send(), 'cron', hour=23, minute=59)
  34. # 每周1,3,6 晚上 10 点 30 分执行 dlt
  35. scheduler.add_job(lambda: spider_get_and_check_dlt.Luanch().main(), 'cron', day_of_week='mon,wed,sat', hour=22,
  36. minute=30)
  37. # 创建任务对象
  38. # 执行多个新闻爬取的任务
  39. scheduler.add_job(lambda: news_get_apprcn.APPRCN().main(), 'cron', hour='3,6,9,13,15,18,21', minute=0)
  40. scheduler.add_job(lambda: news_get_chiphell.CHIPHELL().main(), 'cron', hour='3,6,9,13,15,18,21', minute=0)
  41. scheduler.add_job(lambda: news_get_hello_github.HelloGithub().main(), 'cron', hour='3,6,9,13,15,18,21', minute=0)
  42. scheduler.add_job(lambda: news_get_news.HotNews().main(), 'cron', hour='3,6,9,13,15,18,21', minute=0)
  43. scheduler.add_job(lambda: news_get_36kr_info.Get36krInfo().main(), 'cron', hour='3,6,9,13,15,18,21', minute=0)
  44. scheduler.add_job(lambda: news_get_36kr_key.Get36krKey().main(), 'cron', hour='3,6,9,13,15,18,21', minute=0)
  45. # 发送新闻汇总邮件的任务
  46. scheduler.add_job(lambda: utils_news_data_collation.NewsDataCollation().main(), 'cron', hour='8,12,19,23', minute=0)
  47. # 启动调度器
  48. scheduler.start()
  49. print('\n定时任务开始执行')
  50. # 为了防止程序退出,这里使用一个无限循环
  51. try:
  52. while True:
  53. time.sleep(1)
  54. except (KeyboardInterrupt, SystemExit):
  55. # 关闭调度器
  56. scheduler.shutdown()