我有一个django驱动的网站,我有一个(慢)python函数
def slow_func(arg1, arg2):
# some magic goes here
return result
特别要说slow_func
返回需要45秒。
我想向用户提供一个表单,其中包含可以输入arg1
和arg2
值的字段。当他们提交表单时,我希望他们看到一些临时消息,例如"服务器在如何将arg1和arg2转换为结果时非常努力。而服务器却在计算slow_func(arg1, arg2)
的输出。然后,一旦服务器计算出结果,我希望用户看到像#34; Man这样的东西很难......我终于完成了工作而答案是(等等)&#34 ;
设置这类东西的正确方法是什么?特别是,我所处理的Web服务器超时时间远远小于我的服务器计算我想要的值所花费的45秒......我需要设置哪些技术组合来完成这项工作?
似乎需要某种方式来启动服务器端的任务(这里没有想法),然后让浏览器继续检查某处以查看作业是否完成(javascript?)......然后,一旦它知道作业完成(javascript)它可能会在一些新创建的URL上点击服务器以异步收集结果并显示它(javacript ajax?)或者可能只是重定向到新生成的URL来查看结果? / p>
我确定这是一个已解决的问题,但我似乎无法正确地为谷歌获得正确的条款。
结局说明:如果给出的答案可以适应slow_func
结果的一系列可能类型,那将会很棒。即某些用例可能涉及slow_func
返回float
...其他情况可能涉及返回图像等。
答案 0 :(得分:4)
你的问题可能会被关闭,因为它相当笼统。但是这里有一个如何解决问题的方法,当然还有其他几种方法,这只是一个让你开始的草图。