4.1 KiB
4.1 KiB
定时任务使用指南
概述
彩票数据分析系统新增了定时任务功能,可以自动执行数据更新和拼盘推荐生成任务。
定时任务说明
1. 数据更新任务
- 执行时间: 每天早上6点
- 功能: 自动从API获取最新开奖数据
- 更新内容:
- 双色球最新开奖数据
- 大乐透最新开奖数据
- 检查历史投注的中奖情况
- 日志文件:
backend/lottery_scheduler.log
2. 拼盘推荐任务
- 执行时间: 每天下午5点
- 功能: 自动生成今日拼盘推荐
- 生成内容:
- 使用集成预测算法
- 生成4注推荐号码
- 保存到数据库供前端显示
- 日志文件:
backend/lottery_scheduler.log
启动方式
方式一:一键启动(推荐)
python start_system.py
启动时会询问是否启动定时任务,选择"1"即可。
方式二:手动启动
cd backend
python scheduler.py
方式三:后台运行
cd backend
nohup python scheduler.py > scheduler.log 2>&1 &
查看任务状态
1. 前端查看
- 打开一键下单页面
- 查看"定时任务状态"区域
- 显示下次执行时间和今日推荐状态
2. 日志查看
# 实时查看日志
tail -f backend/lottery_scheduler.log
# 查看最近100行日志
tail -n 100 backend/lottery_scheduler.log
# 搜索特定任务的日志
grep "早上6点" backend/lottery_scheduler.log
grep "下午5点" backend/lottery_scheduler.log
3. 进程查看
# 查看定时任务进程
ps aux | grep scheduler.py
# 查看进程ID
pgrep -f scheduler.py
常见问题
Q1: 定时任务没有执行?
A: 检查以下几点:
- 确保定时任务进程正在运行
- 检查日志文件是否有错误信息
- 确认系统时间正确
- 检查数据库连接是否正常
Q2: 如何修改定时任务时间?
A: 编辑 backend/scheduler.py 文件中的时间设置:
# 修改为其他时间
schedule.every().day.at("07:00").do(self.update_lottery_data_job) # 改为早上7点
schedule.every().day.at("18:00").do(self.generate_daily_recommendations_job) # 改为下午6点
Q3: 如何停止定时任务?
A:
- 找到进程ID:
pgrep -f scheduler.py - 停止进程:
kill <进程ID> - 或者使用Ctrl+C停止(如果在前台运行)
Q4: 今日推荐没有生成?
A: 检查以下几点:
- 定时任务是否正常运行
- 是否有足够的历史数据(建议至少100期)
- 预测模型是否训练完成
- 查看日志文件获取错误信息
Q5: 如何手动执行任务?
A:
-
手动更新数据:
cd backend python update_lottery.py -
手动生成推荐:
- 在前端一键下单页面点击"来一份拼盘"按钮
- 或者调用API接口
配置说明
日志配置
日志文件位置:backend/lottery_scheduler.log
日志级别:INFO
日志格式:时间 - 级别 - 消息
数据库配置
确保数据库连接正常,定时任务需要访问数据库进行数据更新和推荐生成。
API配置
定时任务使用聚合数据API获取开奖数据,确保API密钥有效。
监控建议
1. 定期检查日志
建议每天检查一次日志文件,确保任务正常执行。
2. 监控磁盘空间
日志文件会持续增长,建议定期清理或设置日志轮转。
3. 监控数据库
确保数据库有足够空间存储新数据。
4. 监控网络
确保服务器网络连接正常,能够访问外部API。
故障排除
1. 任务执行失败
- 查看日志文件获取详细错误信息
- 检查数据库连接
- 检查网络连接
- 检查API密钥是否有效
2. 推荐生成失败
- 检查历史数据是否充足
- 检查预测模型是否正常
- 查看预测服务日志
3. 数据更新失败
- 检查API连接
- 检查API密钥
- 检查数据库权限
联系支持
如果遇到问题,请:
- 查看日志文件获取错误信息
- 检查常见问题部分
- 提交Issue到项目仓库
注意: 定时任务功能需要系统持续运行,建议在服务器环境下使用。