rag-hackathon-app / keep_alive.py
Navaneethakrishnan
Add RAG system without large files
09281fe
Raw
History Blame Contribute Delete
2.1 kB
#!/usr/bin/env python3
"""
Keep-alive script to prevent server auto-termination
Pings the Flask server every 2 minutes to keep it alive
"""
import requests
import time
import logging
from datetime import datetime
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
def ping_server():
"""Ping the Flask server"""
try:
response = requests.get("http://127.0.0.1:5000/api/keep-alive", timeout=10)
if response.status_code == 200:
logger.info("βœ… Server ping successful")
return True
else:
logger.warning(f"⚠️ Server ping failed with status: {response.status_code}")
return False
except requests.exceptions.ConnectionError:
logger.error("❌ Cannot connect to server - is it running?")
return False
except Exception as e:
logger.error(f"❌ Ping failed: {e}")
return False
def main():
"""Main keep-alive loop"""
logger.info("πŸš€ Starting keep-alive script")
logger.info("This script will ping the server every 2 minutes")
logger.info("Press Ctrl+C to stop")
ping_count = 0
start_time = datetime.now()
try:
while True:
ping_count += 1
current_time = datetime.now()
uptime = current_time - start_time
logger.info(f"Ping #{ping_count} at {current_time.strftime('%H:%M:%S')} (Uptime: {uptime})")
if ping_server():
logger.info("Server is alive and responding")
else:
logger.warning("Server may be having issues")
# Wait 2 minutes before next ping
logger.info("Sleeping for 2 minutes...")
time.sleep(120) # 2 minutes
except KeyboardInterrupt:
logger.info("πŸ‘‹ Keep-alive script stopped by user")
except Exception as e:
logger.error(f"Keep-alive script crashed: {e}")
if __name__ == "__main__":
main()