diff --git a/main.py b/main.py index c24968b..d0a7964 100644 --- a/main.py +++ b/main.py @@ -83,14 +83,23 @@ async def test(): index = index + 1 await asyncio.sleep(config.TEST_INTERVAL * 6) -async def test_check_session(): - sessions = await AiSeoApis.list_spider_session(6) +async def check_session_by_platform_id(platform_id): + sessions = await AiSeoApis.list_spider_session(platform_id) playwright, browser = await init_browser() for session in sessions: spider = get_spider(session['platform_id'], '你好', '品牌词', browser) - result = await spider.check_session(session['id']) + await spider.check_session(session['id']) + +async def check_session(platform_ids=None): + if platform_ids is None: + platform_ids = [] + logger.info(f"开始检查session {len(platform_ids)}个平台") + for platform_id in platform_ids: + await check_session_by_platform_id(platform_id) + logger.info(f"检查session完成") + if __name__ == '__main__': - asyncio.get_event_loop().run_until_complete(test_check_session()) + asyncio.get_event_loop().run_until_complete(test()) diff --git a/run.py b/run.py index 2804c05..67e7de3 100644 --- a/run.py +++ b/run.py @@ -2,7 +2,7 @@ import asyncio import uuid from dataclasses import asdict -from datetime import datetime, timedelta +from datetime import datetime, timedelta, time import requests from apscheduler.schedulers.asyncio import AsyncIOScheduler @@ -232,6 +232,24 @@ def calc_task_date(time_range): return False, None +async def check_session_by_platform_id(platform_id): + sessions = await AiSeoApis.list_spider_session(platform_id) + playwright, browser = await init_browser() + for session in sessions: + spider = get_spider(session['platform_id'], '你好', '品牌词', browser) + await spider.check_session(session['id']) + +async def check_session(platform_ids=None): + if platform_ids is None: + platform_ids = [] + logger.info(f"开始检查session {len(platform_ids)}个平台") + for platform_id in platform_ids: + await check_session_by_platform_id(platform_id) + logger.info(f"检查session完成") + + + + async def main(): # 初始化浏览器实例 playwright, browser = await init_browser() @@ -253,6 +271,17 @@ async def main(): # 启动心跳任务 # scheduler.add_job(heartbeat, 'interval', id='heartbeat', seconds=30,args=[browser]) # logger.info('启动心跳任务成功') + + # 启动session检查任务 + scheduler.add_job( + check_session, + 'cron', + id='check_session', + hour=15, + minute=14, + args=[[1,4,6,13]] + ) + logger.info('启动session检查任务成功') scheduler.start() await asyncio.Future() # 保持事件循环运行