Hello,

I am developing a web application that contains at least three
sections with high processing load (migration, conversion and
calculations). My idea is that when you call these processes, is made
in the background or in a separate thread, so that the user can
continue "using" the application while still running the "process"
behind.

My first approach was to use threading.Thread, but I think it was not
a good idea.

in mimodulo.py:

class Mi_Clase(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def procesar(self):
        #proceso...

    def run(self):
        self.procesar()

in the controller default.py:
def procesar():
    modulo = local_import('mimodulo', reload=True)
    t = modulo.Mi_Clase()
    t.start()
    #t.join()
    redirect(URL(...))

the problem is that when the redirect occurs (...), the thread is
closed and the process is short.

How should I solve this?

In principle I do not care to know is happening in the thread, but it
can be better. At the end of processing in the thread, send an email
notifying them of the outcome of the process.

According to the size of what you have to process, it may take several
minutes to several hours. Is correct to do this in the context of a
web application?

Regards,
Jose

Reply via email to