我有一个相当复杂的报告生成工作,需要通过多个表生成。最终报告在Excel工作表中创建。该过程需要10-20分钟。
我们为客户提供了一个Django Web应用程序。只有在客户端请求报告时才会发出,我们正在生成一个URL,这需要时间,并且就UI而言是一个问题。
我希望任务在后面运行,一旦结束,它可以通过报告向客户端发送链接。什么是正确的策略,以及要使用的库?
答案 0 :(得分:4)
你可以使用http://celeryproject.org/,它就像一个魅力,它有很好的Django集成,它有很好的文档和很多人使用。
答案 1 :(得分:1)
可能是以下程序可以帮助您。
import subprocess
def background_execute(command):
# launching the command
p1 = subprocess.Popen(command,shell=True,stdout=True)
p1.wait()
print "Wait over, child exits"
<Here you can add code to send mail>
用法:
background_execute(["python sleep.py"])
import time
print "I am in sleep script, and will sleep for 10 sec"
time.sleep(10)
print "exit from child"