|
|
@ -2,7 +2,7 @@ |
|
|
import asyncio |
|
|
import asyncio |
|
|
import uuid |
|
|
import uuid |
|
|
from dataclasses import asdict |
|
|
from dataclasses import asdict |
|
|
from datetime import datetime, timedelta |
|
|
|
|
|
|
|
|
from datetime import datetime, timedelta, time |
|
|
|
|
|
|
|
|
import requests |
|
|
import requests |
|
|
from apscheduler.schedulers.asyncio import AsyncIOScheduler |
|
|
from apscheduler.schedulers.asyncio import AsyncIOScheduler |
|
|
@ -232,6 +232,24 @@ def calc_task_date(time_range): |
|
|
|
|
|
|
|
|
return False, None |
|
|
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(): |
|
|
async def main(): |
|
|
# 初始化浏览器实例 |
|
|
# 初始化浏览器实例 |
|
|
playwright, browser = await init_browser() |
|
|
playwright, browser = await init_browser() |
|
|
@ -253,6 +271,17 @@ async def main(): |
|
|
# 启动心跳任务 |
|
|
# 启动心跳任务 |
|
|
# scheduler.add_job(heartbeat, 'interval', id='heartbeat', seconds=30,args=[browser]) |
|
|
# scheduler.add_job(heartbeat, 'interval', id='heartbeat', seconds=30,args=[browser]) |
|
|
# logger.info('启动心跳任务成功') |
|
|
# 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() |
|
|
scheduler.start() |
|
|
await asyncio.Future() # 保持事件循环运行 |
|
|
await asyncio.Future() # 保持事件循环运行 |
|
|
|
|
|
|
|
|
|