proxy-loadbalancer/proxy-skeleton/app/suicide.py

36 lines
1005 B
Python

import logging
import os
import signal
import threading
import time
import requests
from redis import Redis
def check_url_thread(url: str):
redis = Redis(host='localhost', port=6379, decode_responses=True)
redis.set('suicide_online', 1)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
time.sleep(30) # give the server some time to start up
logger.info('Created a suicide pact.')
while True:
try:
response = requests.get(url, timeout=10)
if response.status_code != 404:
logger.critical(f"Fetch failed with status code: {response.status_code}")
os.kill(os.getpid(), signal.SIGTERM)
except requests.exceptions.RequestException as e:
logger.critical(f"Fetch failed with exception: {e}")
os.kill(os.getpid(), signal.SIGTERM)
time.sleep(10)
class SuicidePact:
def __init__(self):
self.pact = threading.Thread()
SUICIDE_PACT = SuicidePact()