|
před 4 dny | |
---|---|---|
.. | ||
README.md | před 5 dny | |
image_identifier.py | před 1 týdnem | |
indentify.py | před 4 dny | |
install_deps.sh | před 1 týdnem | |
multi_thread_scheduler.py | před 5 dny | |
requirements.txt | před 1 týdnem | |
scheduler.pid | před 4 dny | |
start_scheduler.sh | před 5 dny | |
video_identifier.py | před 6 dny |
这是一个多线程定时任务调度器,用于自动处理内容识别任务。在服务器上运行时,所有日志都会保存到文件中,方便查看和调试。
multi_thread_scheduler.py
- 多线程调度器主程序indentify.py
- 内容识别处理模块logging_config.py
- 日志配置模块start_scheduler.sh
- 启动脚本(支持多种操作)logs/
- 日志文件目录# 启动调度器(后台运行)
./start_scheduler.sh start
# 或者直接运行Python脚本(前台运行)
python3 multi_thread_scheduler.py
# 查看调度器状态
./start_scheduler.sh status
# 查看实时日志
tail -f logs/scheduler_*.log
# 查看内容识别日志
tail -f logs/content_identifier_*.log
# 优雅停止调度器
./start_scheduler.sh stop
# 强制停止(如果优雅停止失败)
kill -KILL $(cat scheduler.pid)
# 重启调度器
./start_scheduler.sh restart
在 multi_thread_scheduler.py
中修改:
scheduler = MultiThreadScheduler(thread_count=5, interval_minutes=2)
thread_count
: 工作线程数量(默认5个)interval_minutes
: 每个线程处理数据的间隔(默认2分钟)日志文件会自动按日期命名:
logs/scheduler_YYYYMMDD.log
logs/content_identifier_YYYYMMDD.log
logs/scheduler_stdout.log
# 使用screen
screen -S scheduler
./start_scheduler.sh start
# 按 Ctrl+A 然后按 D 分离会话
# 重新连接会话
screen -r scheduler
创建服务文件 /etc/systemd/system/content-scheduler.service
:
[Unit]
Description=Content Recognition Scheduler
After=network.target
[Service]
Type=forking
User=your_username
WorkingDirectory=/path/to/your/project
ExecStart=/path/to/your/project/content_indentify/start_scheduler.sh start
ExecStop=/path/to/your/project/content_indentify/start_scheduler.sh stop
PIDFile=/path/to/your/project/content_indentify/scheduler.pid
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable content-scheduler
sudo systemctl start content-scheduler
sudo systemctl status content-scheduler
# 编辑crontab
crontab -e
# 添加监控任务(每5分钟检查一次)
*/5 * * * * /path/to/your/project/content_indentify/start_scheduler.sh status > /dev/null 2>&1 || /path/to/your/project/content_indentify/start_scheduler.sh restart
# 监控所有日志
tail -f logs/*.log
# 监控特定日志
tail -f logs/scheduler_$(date +%Y%m%d).log
# 监控错误日志
tail -f logs/*.log | grep ERROR
# 搜索特定关键词
grep "ERROR" logs/*.log
# 搜索特定时间段的日志
grep "2024-01-15" logs/*.log
# 搜索特定线程的日志
grep "WorkerThread-1" logs/*.log
# 统计错误数量
grep -c "ERROR" logs/*.log
# 查看处理成功的记录
grep -c "数据处理成功" logs/*.log
# 查看处理失败的记录
grep -c "处理失败" logs/*.log
bash
chmod +x start_scheduler.sh
2. 路径配置: 确保所有路径都是绝对路径或正确的相对路径
3. 环境变量: 确保数据库连接等环境变量已正确配置
4. 资源监控: 定期监控服务器资源使用情况
5. 备份策略: 定期备份重要的配置和日志文件
## 联系支持
如果遇到问题,请:
1. 查看相关日志文件
2. 检查系统资源使用情况
3. 确认配置是否正确
4. 联系技术支持团队