Hello
I would like to make some administative build/test tasks for a web2py
application available via the web interface, with the output presented
to the html page in real time, like console output.

The code below seems to work reasonably well, but is this sort of
thing recommended/safe? Is there a better way?
I am running windows.

import time
import threading

class my_thread(threading.Thread):
    def __init__(self, file):
        self.file = file
        threading.Thread.__init__(self)

    def run(self):
        self.file.write('<html><body>')
        # test streamed html output
        for i in range(10):
            self.file.flush()
            time.sleep(1)  # simulate long-running process
            # pad lines to be more than a chunk
            self.file.write('<p>%100d </p>' % (i,))
        self.file.write('</body></html>')
        self.file.close()


def my_controller():

    (rh, wh) = os.pipe()
    r = os.fdopen(rh, 'r')
    w = os.fdopen(wh, 'w')
    response.headers['Content-Type'] = 'text/html'

    my_thread(w).start()
    return response.stream(r, 50)   # set chunk size to something
small



-- 
To unsubscribe, reply using "remove me" as the subject.

Reply via email to