优化自动化

This commit is contained in:
huangzhenpc
2025-04-01 16:25:08 +08:00
parent 7dad9f6b2f
commit b20094adfc
10 changed files with 1284 additions and 5 deletions

166
AUTO_SERVICE_README.md Normal file
View File

@@ -0,0 +1,166 @@
# Cursor自动化服务使用说明
本自动化服务实现了Cursor注册流程的完全自动化包括API状态监控、邮箱自动获取和账号上传功能。
## 功能特点
1. **API状态监控**
- 实时监控注册API状态自动开启/关闭注册进程
- 支持配置检查间隔和自定义服务器标识(hostname)
2. **邮箱账号自动管理**
- 监控本地邮箱池当可用邮箱不足时自动从API获取
- 支持配置获取阈值和批次数量
3. **账号自动上传**
- 定期上传注册成功的账号到API
- 支持配置上传间隔和代理设置
- 通过extracted字段跟踪已上传账号
4. **进程管理**
- 智能管理注册子进程的启动和停止
- 在API关闭注册时自动停止进程
5. **完善的日志记录**
- 详细的运行日志,支持日志轮转和压缩
- 关键操作和错误的可追溯性
## 前置条件
1. 已配置好MySQL数据库
2. Redis服务(可选,但推荐)
3. 已在config.yaml中配置好hostname参数
4. 已安装所需依赖:`pip install -r requirements.txt`
## 配置说明
`config.yaml`中添加以下配置:
```yaml
# 服务器配置
server_config:
hostname: "sg424" # 服务器标识用于API调用
# 代理配置
proxy:
# ... 其他代理配置 ...
api_proxy: "http://your-proxy-server:port" # API专用代理(可选)
# 自动服务配置
auto_service:
check_interval: 60 # 检查API状态的间隔
upload_interval: 300 # 上传账号间隔(秒)
email_check_threshold: 30 # 当可用邮箱少于这个数时获取新邮箱
```
## 使用方法
1. **初始化数据库**(首次使用)
```bash
python init_database.py
```
2. **升级数据库**(现有数据库升级)
```bash
python upgrade_database.py
```
> 注意:如果您从之前版本升级,需要运行此脚本添加新的`extracted`字段
3. **启动自动化服务**
```bash
python auto_cursor_service.py
```
4. **查看运行状态**
- 服务会在控制台输出基本运行信息
- 详细日志保存在`auto_cursor_service.log`文件中
5. **停止服务**
- 按Ctrl+C安全停止服务
- 服务会自动停止注册进程并清理资源
## 工作流程
1. 服务启动,初始化数据库连接
2. 定期检查API注册状态(`/regstates`)
3. 如果注册开启:
- 检查本地邮箱池如果数量不足从API获取新邮箱
- 启动注册进程(main.py)
4. 如果注册关闭:
- 停止注册进程
5. 定期上传注册成功的账号,并标记为已上传(extracted=1)
6. 循环以上步骤,直到服务被手动停止
## 常见问题
1. **API连接问题**
- 检查网络连接和代理设置
- 确认API URL和参数正确
2. **邮箱获取失败**
- 检查API返回的错误信息
- 可能是服务端暂无可用邮箱
3. **子进程管理问题**
- Windows平台可能需要管理员权限来强制终止进程
- 检查main.py是否能正常独立运行
4. **内存占用过高**
- 调整日志设置,减少日志详细程度
- 检查是否有内存泄漏
5. **数据库结构问题**
- 如遇到"Unknown column 'extracted' in 'where clause'"错误
- 运行`python upgrade_database.py`更新数据库结构
## 进阶使用
### 设置为系统服务Linux
1. 创建服务文件`/etc/systemd/system/cursor-service.service`
```
[Unit]
Description=Cursor Auto Registration Service
After=network.target mysql.service redis.service
[Service]
Type=simple
User=your_user
WorkingDirectory=/path/to/cursor/app
ExecStart=/usr/bin/python3 /path/to/cursor/app/auto_cursor_service.py
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
```
2. 重新加载systemd
```bash
sudo systemctl daemon-reload
```
3. 启动服务:
```bash
sudo systemctl start cursor-service
```
4. 设置开机自启:
```bash
sudo systemctl enable cursor-service
```
### 使用screen或tmux简易方法
```bash
# 使用screen
screen -S cursor
python auto_cursor_service.py
# 按Ctrl+A然后按D分离screen
# 使用tmux
tmux new -s cursor
python auto_cursor_service.py
# 按Ctrl+B然后按D分离tmux
```