Flask:执行时间获取python脚本并将用户定向到另一个页面

时间:2016-02-25 12:56:08

标签: python multithreading flask

我正在构建一个烧录应用程序,提示用户输入他/她的电子邮件和输入文件。当用户同时输入它们时,我在此输入文件上运行脚本。现在这个脚本需要花费大量的时间来执行。我想将此脚本评估的结果邮寄给用户。但是,只要脚本正在执行,我的页面就会冻结。我希望我的用户能够转到另一个页面,显示他的响应已被提交以进行处理,并且他将在一段时间内邮寄它,而不是在脚本执行时被卡在页面上。任何线索将不胜感激

1 个答案:

答案 0 :(得分:0)

我最终使用了python中提供的Threading module,实现非常简单,生成一个新线程,负责渲染重定向页面,主线程将执行我的脚本。如果有人需要,

class Mythread(threading.Thread):
    def __init__(self, params):
        threading.Thread.__init__(self)
        self.h = i
        self.params = params
    def run(self):
        time.sleep(1)
        # do expensive work, your time taking script

我将其称为:

thread1 = Mythread(1, params)
thread1.start()
return open('redirectpage.html')

这样,只要脚本运行

,我的页面就不会挂起