这个项目使用 GitHub Actions 来每隔30分钟自动更新 cache.json 文件,确保数据始终保持最新状态。
- ⏰ 定时更新: 每隔30分钟自动运行
- 🔄 增量更新: 只获取新增的数据记录
- 📝 自动提交: 有新数据时自动提交到GitHub
- 🛡️ 错误处理: 包含完整的错误处理和日志记录
- 🎯 手动触发: 支持手动触发更新任务
.github/
└── workflows/
└── update-cache.yml # GitHub Actions 工作流配置
update_cache_github.py # 缓存更新脚本
cache.json # 缓存数据文件
确保你的仓库中有以下文件:
.github/workflows/update-cache.yml- GitHub Actions 工作流update_cache_github.py- 更新脚本cache.json- 缓存文件(如果不存在会自动创建)
将所有文件推送到你的GitHub仓库:
git add .
git commit -m "Add GitHub Actions for automatic cache updates"
git push origin main- 进入你的GitHub仓库页面
- 点击 "Actions" 标签页
- 如果这是第一次使用Actions,点击 "I understand my workflows, go ahead and enable them"
- 你应该能看到 "Update Cache Data" 工作流
你可以手动触发一次更新来测试:
- 在 Actions 页面点击 "Update Cache Data" 工作流
- 点击 "Run workflow" 按钮
- 点击绿色的 "Run workflow" 按钮确认
schedule:
- cron: '*/30 * * * *' # 每30分钟运行一次你可以修改这个cron表达式来改变运行频率:
*/15 * * * *- 每15分钟0 * * * *- 每小时整点0 */2 * * *- 每2小时
- 检出代码: 获取仓库代码
- 设置Python: 安装Python 3.9环境
- 安装依赖: 安装requests库
- 运行更新脚本: 执行缓存更新
- 检查变更: 检查cache.json是否有变化
- 提交变更: 如果有新数据,自动提交到仓库
- 进入GitHub仓库的 "Actions" 页面
- 点击具体的工作流运行记录
- 查看每个步骤的详细日志
开始更新缓存数据...
服务器总记录数: 150
缓存记录数: 145
发现 5 条新记录,开始获取...
正在获取记录 146/150 (1/5)
正在获取记录 147/150 (2/5)
...
成功更新缓存,新增 5 条记录
✅ 缓存更新成功
如果需要修改API服务器地址,编辑 update_cache_github.py 文件:
API_BASE_URL = "http://your-api-server:port"编辑 .github/workflows/update-cache.yml 文件中的cron表达式:
schedule:
- cron: '*/15 * * * *' # 改为每15分钟你可以在工作流中添加通知步骤,例如发送邮件或Slack消息:
- name: Notify on success
if: steps.check_changes.outputs.changed == 'true'
run: echo "Cache updated successfully! New data available."-
工作流没有运行
- 检查cron语法是否正确
- 确保仓库有活动(GitHub会暂停不活跃仓库的定时任务)
-
API请求失败
- 检查API服务器是否可访问
- 检查网络连接和超时设置
-
提交失败
- 检查GITHUB_TOKEN权限
- 确保没有其他进程同时修改文件
- 手动运行工作流查看详细日志
- 检查API服务器状态
- 验证cache.json文件格式
- 查看GitHub Actions的限制和配额
- 脚本使用增量更新,只获取新数据
- 添加了请求间隔避免服务器压力
- 使用适当的超时设置
- 只在有变更时才提交代码
- 使用GitHub提供的GITHUB_TOKEN
- 不在代码中硬编码敏感信息
- 合理设置API请求超时
- 添加错误处理避免脚本崩溃
- 定期检查工作流运行状态
- 监控cache.json文件大小
- 根据需要调整运行频率
- 及时处理API变更或服务器迁移
如果你遇到任何问题或需要帮助,请查看GitHub Actions的运行日志或创建Issue。