File size: 2,095 Bytes
09281fe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/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()