Spaces:
Sleeping
Sleeping
| import threading | |
| import requests | |
| import logging | |
| import time | |
| from proxy_server import ProxyServer | |
| # Configure logging | |
| logger = logging.getLogger(__name__) | |
| class ProxyThread(threading.Thread): | |
| def __init__(self, host='localhost', port=5000): | |
| threading.Thread.__init__(self) | |
| secret_key='your_secret_key_here' | |
| self.proxy_server = ProxyServer(secret_key, host, port) | |
| def run(self): | |
| """Starts the proxy server in a thread""" | |
| logger.info("ProxyThread starting") | |
| self.proxy_server.run() | |
| def stop(self): | |
| """Stops the proxy server by sending a shutdown request""" | |
| logger.info("Stopping ProxyThread") | |
| try: | |
| response = requests.post(f'http://{self.proxy_server.host}:{self.proxy_server.port}/shutdown', timeout=5) | |
| logger.info(f"Shutdown request sent. Response: {response.text}") | |
| except requests.RequestException as e: | |
| logger.error(f"Error sending shutdown request: {e}") | |
| # Wait for the server to shut down | |
| timeout = 10 | |
| start_time = time.time() | |
| while self.proxy_server.is_running and time.time() - start_time < timeout: | |
| time.sleep(0.1) | |
| if self.proxy_server.is_running: | |
| logger.warning("Server did not shut down in time") | |
| else: | |
| logger.info("Server has been shut down") | |
| self.join(timeout=5) | |
| logger.info("ProxyThread stopped") | |