166 lines
4.2 KiB
Markdown
166 lines
4.2 KiB
Markdown
# 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
|
||
``` |