aboutsummaryrefslogtreecommitdiffstats
path: root/python/http-server.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/http-server.py')
-rw-r--r--python/http-server.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/python/http-server.py b/python/http-server.py
new file mode 100644
index 00000000..6e920930
--- /dev/null
+++ b/python/http-server.py
@@ -0,0 +1,52 @@
+from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
+from urlparse import parse_qsl
+from daemon import Daemon
+import sys, datetime, logging, json, redis
+
+def run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler):
+ server_address = ('', 8000)
+ httpd = server_class(server_address, handler_class)
+ httpd.serve_forever()
+
+class MyHandler(BaseHTTPRequestHandler):
+ def do_GET(self):
+ self.send_response(200)
+ self.end_headers()
+
+ def do_POST(self):
+ length = int(self.headers['content-length'])
+ d = parse_qsl(self.rfile.read(length).decode('utf-8'))
+ self.log_message("%s" , json.dumps(d))
+ workdate = str(datetime.date.today())
+ for dealname, reinvflag in d:
+ q.rpush("tasks", json.dumps(("build_portfolio", [workdate, dealname, reinvflag])))
+ self.send_response(200)
+ self.end_headers()
+
+ def log_message(self, format, *args):
+ logger.info("%s - - [%s] %s\n" %
+ (self.address_string(),
+ self.log_date_time_string(),
+ format%args))
+
+class MyDaemon(Daemon):
+ def run(self):
+ server_address = ('',8000)
+ http = HTTPServer(server_address, MyHandler)
+ http.serve_forever()
+
+if __name__=="__main__":
+ #d = MyDaemon('/tmp/pomme.pid')
+ logger = logging.getLogger('pomme')
+ logger.setLevel('INFO')
+ fh = logging.FileHandler("httpd.log")
+ fh.setLevel('INFO')
+ logger.addHandler(fh)
+ q = redis.Redis(unix_socket_path='/var/run/redis/redis.sock')
+ run(handler_class=MyHandler)
+ # if sys.argv[1] == "start":
+ # d.start()
+ # elif sys.argv[1] == "stop":
+ # d.stop()
+ # elif sys.argv[1] == "restart":
+ # d.restart()