Browse Source

feat: 新增监测session的定时任务

master
zzx 2 months ago
parent
commit
5851894c65
  1. 17
      main.py
  2. 31
      run.py

17
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())

31
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() # 保持事件循环运行

Loading…
Cancel
Save