Skip to content

Keep Render Backend Awake #4846

Keep Render Backend Awake

Keep Render Backend Awake #4846

# 保持Render后端服务活跃
# 防止免费版Render服务因15分钟无活动而休眠
name: Keep Render Backend Awake
on:
schedule:
# 每14分钟触发一次 (避免15分钟休眠限制)
- cron: "*/14 * * * *"
workflow_dispatch: # 允许手动触发
jobs:
ping-backend:
runs-on: ubuntu-latest
steps:
- name: Ping Render Backend
run: |
echo "🚀 开始ping Render后端服务..."
echo "⏰ 当前时间: $(date)"
echo "🎯 目标URL: ${{ secrets.BACKEND_URL }}"
# 使用curl ping后端根路径 (Strapi根路径会返回302重定向到/admin,这是正常的)
response=$(curl -s -o /dev/null -w "%{http_code}" -m 30 ${{ secrets.BACKEND_URL }} || echo "failed")
if [ "$response" = "200" ] || [ "$response" = "302" ]; then
echo "✅ 后端服务响应正常 (HTTP $response)"
elif [ "$response" = "failed" ]; then
echo "❌ 请求失败 - 可能是网络问题或服务暂时不可用"
else
echo "⚠️ 后端服务响应异常 (HTTP $response)"
fi
echo "📊 任务完成时间: $(date)"
# 确保工作流不会因为ping失败而报错
exit 0
- name: Ping API Endpoint (备用检查)
run: |
echo "🔄 执行备用API端点检查..."
# 检查API端点是否可访问 (404是正常的,说明服务在运行)
api_response=$(curl -s -o /dev/null -w "%{http_code}" -m 30 ${{ secrets.BACKEND_URL }}/api || echo "failed")
if [ "$api_response" = "200" ] || [ "$api_response" = "404" ]; then
echo "✅ API端点可访问 (HTTP $api_response)"
elif [ "$api_response" = "failed" ]; then
echo "❌ API请求失败"
else
echo "⚠️ API端点检查: HTTP $api_response"
fi
echo "🎯 保持活跃任务执行完毕"
exit 0