modelscope 创空间保活方案

modelscope 创空间保活方案
modelscope 创空间保活方案

ModelScope 保活机制

同理可用于huggingface

概述

通过 playwright-cli 定时自动访问 ModelScope 网页,保持登录状态和会话活跃,避免因长时间未操作导致的登录失效或会话过期。

实现原理

1. 持久化浏览器配置

playwright-cli open --persistent --profile=./modelscope-profile --headed https://modelscope.cn/studios/hqzqaq/QwenPaw
参数 说明 --persistent 使用持久化配置文件,浏览器数据(cookies、localStorage、缓存等)会保存在本地 --profile=./modelscope-profile 指定配置文件目录路径 --headed 以有头模式启动(可见浏览器窗口)

2. 会话保持机制

  • Cookies 持久化:登录后生成的 session cookie 会保存在 modelscope-profile 目录
  • LocalStorage 保持:网站的本地存储数据会被保留
  • 缓存复用:浏览器缓存可复用,减少加载时间

3. 保活流程

┌─────────────────┐
│  定时触发       │
│  (Schedule)     │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  打开浏览器     │
│  playwright-cli │
│  open --persist│
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  访问目标页面   │
│  modelscope.cn │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  等待加载完成   │
│  (等待时间可调) │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  关闭浏览器     │
│  playwright-cli │
│  close         │
└─────────────────┘

配置步骤

步骤 1:初始化持久化配置(仅需执行一次)

# 手动打开浏览器并登录
playwright-cli open --persistent --profile=./modelscope-profile --headed https://modelscope.cn

# 在打开的浏览器中完成登录操作

# 关闭浏览器
playwright-cli close

步骤 2:创建保活脚本

创建 modelscope-keepalive.sh 脚本:

#!/bin/bash

PROFILE_PATH="./modelscope-profile"
TARGET_URL="https://modelscope.cn/studios/hqzqaq/QwenPaw"
WAIT_TIME=30  # 页面加载后等待秒数

# 打开浏览器并访问目标页面
playwright-cli open --persistent --profile=${PROFILE_PATH} --headed ${TARGET_URL}

# 等待页面加载和保持活跃
sleep ${WAIT_TIME}

# 关闭浏览器
playwright-cli close

步骤 3:设置定时任务

使用 cron 或 Schedule 工具设置定时执行。

使用 cron(每 6 小时执行一次):
# 编辑 crontab
crontab -e

# 添加以下行(每天 6:00、12:00、18:00、00:00 执行)
0 0,6,12,18 * * * /path/to/modelscope-keepalive.sh
使用 Schedule 工具(推荐)

参见下方「使用 Schedule 工具」章节。

使用 Schedule 工具

在 Trae SOLO 中使用 Schedule 工具创建定时任务:

创建定时任务

# 在 Trae SOLO 中执行
Schedule.create(
  name="ModelScope 保活",
  cron_expression="0 0,6,12,18 * * *",  # 每 6 小时执行一次
  message="使用 playwright-cli 定时访问 ModelScope:
  1. 执行命令:playwright-cli open --persistent --profile=./modelscope-profile --headed https://modelscope.cn/studios/hqzqaq/QwenPaw
  2. 等待 30 秒
  3. 执行命令:playwright-cli close",
  timezone="Asia/Shanghai"
)

定时任务管理

操作 命令 查看任务列表 Schedule.list() 查看任务详情 Schedule.get(scheduled_task_id) 手动触发执行 Schedule.trigger(scheduled_task_id) 暂停任务 Schedule.pause(scheduled_task_id) 恢复任务 Schedule.resume(scheduled_task_id) 删除任务 Schedule.delete(scheduled_task_id)

注意事项

  1. 登录状态有效期:大多数网站的登录状态会在 7-30 天后过期,需要定期检查并重新登录
  2. 网络连接:确保执行环境网络畅通
  3. 并发控制:同一 profile 不要同时在多个进程中使用
  4. 数据目录:妥善保管 modelscope-profile 目录,不要删除或随意移动
  5. 错误处理:建议添加日志记录,便于排查问题

常见问题

Q: 登录状态过期了怎么办?

A: 删除旧的 profile 目录,重新执行「步骤 1」进行登录:

rm -rf ./modelscope-profile
playwright-cli open --persistent --profile=./modelscope-profile --headed https://modelscope.cn
# 手动登录后关闭
playwright-cli close

Q: 如何确认保活是否生效?

A: 可以通过以下方式验证:

  1. 查看 cron/Scheule 任务的执行日志
  2. 在执行时加上日志记录:
#!/bin/bash
echo "$(date): 开始保活访问" >> ./keepalive.log
playwright-cli open --persistent --profile=./modelscope-profile --headed https://modelscope.cn/studios/hqzqaq/QwenPaw
sleep 30
playwright-cli close
echo "$(date): 保活完成" >> ./keepalive.log

Q: 能否在无头模式运行?

A: 可以。去掉 --headed 参数即可:

playwright-cli open --persistent --profile=./modelscope-profile https://modelscope.cn/studios/hqzqaq/QwenPaw

1 个帖子 - 1 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文