aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjantuomi <jans.tuomi@gmail.com>2016-07-26 15:46:35 +0300
committerjantuomi <jans.tuomi@gmail.com>2016-07-26 15:46:35 +0300
commita4af1c91a7196752d2fe8ccf7e5cbb1593e95f65 (patch)
tree1edd5754ded769aec774766cab885f759ef1e641
parentd8d8745e7370ec0efa85e3f98da85f79b66c1422 (diff)
Add threading to UptimeService, fix response
-rw-r--r--project/uptimeservice.py18
-rwxr-xr-xradiodiodibot2
2 files changed, 19 insertions, 1 deletions
diff --git a/project/uptimeservice.py b/project/uptimeservice.py
index 252dc17..0cda612 100644
--- a/project/uptimeservice.py
+++ b/project/uptimeservice.py
@@ -3,13 +3,22 @@ import socketserver
import logging
import threading
+class UptimeRequestHandler(http.server.SimpleHTTPRequestHandler):
+ def do_GET(self):
+ self.send_response(200)
+ self.send_header("Content-type", "text/plain")
+ self.send_header("Content-Length", "0")
+ self.end_headers()
class UptimeService(threading.Thread):
+ _instance = None
+
def __init__(self, port):
super(UptimeService, self).__init__()
+ UptimeService._instance = self
self.port = port
- self._handler = http.server.SimpleHTTPRequestHandler
+ self._handler = UptimeRequestHandler
self._httpd = socketserver.TCPServer(("", port), self._handler)
@@ -20,3 +29,10 @@ class UptimeService(threading.Thread):
def run(self):
self.serve()
+ def stop(self):
+ self._httpd.shutdown()
+
+ @staticmethod
+ def stop_services():
+ if UptimeService._instance is not None:
+ UptimeService._instance.stop()
diff --git a/radiodiodibot b/radiodiodibot
index 903881c..0d067dd 100755
--- a/radiodiodibot
+++ b/radiodiodibot
@@ -12,6 +12,8 @@ from project import uptimeservice
def sigint_handler(signal, frame):
"""Exit gracefully when receiving an interrupt signal"""
+ logging.info("Stopping uptime services (if any)...")
+ uptimeservice.UptimeService.stop_services()
print("Exiting radiodiodibot...")
sys.exit(0)