我在 render.com 上以免费套餐托管了一个节点服务器。它每 15 分钟就会进入睡眠状态,因此为了防止这种情况,我想我可以自行 ping 服务器以使其保持唤醒状态。
我已经尝试过这段代码,但它似乎没有让服务器保持唤醒状态:
const cronjob = require('node-cron')
const ping = require('ping')
cronjob.schedule('*/10 * * * *', () => {
ping.sys.probe("https://servername.onrender.com");
});
我怎样才能实现这个目标?还有其他方法可以让服务器保持唤醒状态吗?我之前曾将 Kaffeine 用于 Heroku 服务器。渲染还有其他选择吗?
创建 GitHub 存储库
在您的存储库中,创建一个新文件:
ping_script.py
在其中添加此脚本:
import requests
import schedule
import time
import logging
def ping_endpoints():
endpoints = [
"https://your-frontend-url.com", # Replace with your actual URLs
"https://your-backend-url.com"
]
for url in endpoints:
try:
response = requests.get(url, timeout=10)
logging.info(f"Pinged {url}. Status code: {response.status_code}")
except Exception as e:
logging.error(f"Error pinging {url}: {e}")
def main():
logging.basicConfig(level=logging.INFO)
ping_endpoints()
if __name__ == "__main__":
main()
在同一目录下创建
requirements.txt
在其中添加以下内容:
requests
schedule
创建目录结构:
.github/workflows/
在该目录中,创建一个名为
ping.yml
的文件
在其中添加此内容:
name: Ping Services
on:
schedule:
# Runs every 10 minutes
- cron: '*/10 * * * *'
workflow_dispatch: # Allows manual triggering
jobs:
ping-services:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run Ping Script
run: python ping_script.py
请使用axios或其他模块向服务器发送http请求,它将保持服务器开启