72 lines
2.3 KiB
Bash
Executable File
72 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 启动新闻爬虫自动定时服务
|
|
# 使用 PM2 进程管理器保证服务稳定运行
|
|
|
|
set -e
|
|
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo " 🚀 启动 OmniVerse 新闻爬虫自动定时服务"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
# 检查 PM2 是否安装
|
|
if ! command -v pm2 &> /dev/null; then
|
|
echo "📦 PM2 未安装,正在安装..."
|
|
npm install -g pm2
|
|
echo "✅ PM2 安装完成"
|
|
echo ""
|
|
fi
|
|
|
|
# 进入爬虫服务目录
|
|
cd news-crawler-service
|
|
|
|
# 检查依赖
|
|
if [ ! -d "node_modules" ]; then
|
|
echo "📦 安装依赖..."
|
|
npm install
|
|
echo ""
|
|
fi
|
|
|
|
# 停止已存在的服务
|
|
echo "🔍 检查现有服务..."
|
|
pm2 delete omniverse-news 2>/dev/null || true
|
|
echo ""
|
|
|
|
# 启动服务
|
|
echo "🚀 启动新闻爬虫服务..."
|
|
pm2 start src/server.js --name omniverse-news --time
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo " ✅ 服务启动成功!"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
echo "📊 服务信息:"
|
|
echo " • 名称: omniverse-news"
|
|
echo " • 端口: 3001"
|
|
echo " • API: http://localhost:3001"
|
|
echo " • 定时爬取: 每 30 分钟"
|
|
echo " • 自动导出: 已启用"
|
|
echo " • 日志位置: logs/app.log"
|
|
echo ""
|
|
echo "📋 常用命令:"
|
|
echo " pm2 status # 查看服务状态"
|
|
echo " pm2 logs omniverse-news # 查看实时日志"
|
|
echo " pm2 restart omniverse-news # 重启服务"
|
|
echo " pm2 stop omniverse-news # 停止服务"
|
|
echo " pm2 delete omniverse-news # 删除服务"
|
|
echo ""
|
|
echo "🔄 首次运行:"
|
|
echo " 服务将在启动后 5 秒开始首次爬取"
|
|
echo " 之后每 30 分钟自动爬取一次"
|
|
echo " 每次爬取完成后自动导出 JSON 到 public/data/news.json"
|
|
echo ""
|
|
echo "🌐 查看服务:"
|
|
pm2 status
|
|
|
|
echo ""
|
|
echo "📝 查看实时日志:"
|
|
echo " pm2 logs omniverse-news"
|
|
echo ""
|