BaseHTTPServer ThreadMixIn not working

amit wilson.amit at gmail.com
Mon Oct 3 11:03:18 EDT 2011


Hi everyone,
I am really stuck in a very simple problem and wanted to know if you
could take some time to check it out -

My code is simple. Using BaseHTTPServer and ThreadInMix I want to run
a python script (Script1.py) for every request made simultaneously.

My code->

from subprocess import PIPE, Popen
from SocketServer import ThreadingMixIn
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
import time

def simple_script(self):
    print 'simple_script'
    s = Popen('C:/Python27/python C:/Script1.py 5', shell=True,
              stdout=PIPE, stderr=PIPE)
    out, err = s.communicate()
    print out, err
    self.wfile.write(out)

class Handler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        self.wfile.write('{0}\n'.format(time.asctime()))
        simple_script(self)
        return

class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
    pass

if __name__ == '__main__':
    server = ThreadedHTTPServer(('', 8080), Handler)
    print 'Starting server, use <Ctrl-C> to stop'
    server.serve_forever()

"""
# C:/Script1.py
import time, sys

s = time.time()

while True:
    if time.time() - s > int(sys.argv[1]):
        break
    else:
        time.sleep(1)
        print time.asctime()
"""

If I open multiple tabs/pages in Chrome/Firefox/IE and give URL:
http://localhost:8080, the pages wait for previous page? This does not
imply threading? Any help? Thanks



More information about the Python-list mailing list