diff options
Diffstat (limited to 'python/http-server.py')
| -rw-r--r-- | python/http-server.py | 52 |
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() |
