File size: 1,007 Bytes
bcb31ef | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | """
keep_alive.py
خادم HTTP بسيط على بورت 8080 يُستخدم فقط لإبقاء الـ Space نشطًا.
يمكن لأي خدمة ping خارجية (UptimeRobot, cron-job.org) أن تطرقه كل 5 دقائق.
"""
from http.server import HTTPServer, BaseHTTPRequestHandler
import threading
import logging
logger = logging.getLogger(__name__)
class PingHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-Type", "text/plain; charset=utf-8")
self.end_headers()
self.wfile.write("alive\n".encode())
# Suppress default request logs to keep console clean
def log_message(self, format, *args):
pass
def start_ping_server(port: int = 8080):
server = HTTPServer(("0.0.0.0", port), PingHandler)
t = threading.Thread(target=server.serve_forever, daemon=True)
t.start()
logger.info(f"✅ Keep-alive server running on port {port} → GET / → 200 alive")
return server
|