我正在使用用户点击的django项目提交一组需要在后端处理的图像。即使在主线程使用Django终止之后运行线程
图片已经上传到服务器上,但一旦用户点击提交,处理请求需要大量时间,大约15秒钟,直到显示“谢谢您使用我们的消息”。
我想要做的是将流程中耗时的部分放入不同的线程,并立即显示感谢信息。我的代码如下所示:
def processJob(request):
...
threading.Thread(target=processInBackground, args=(username, jobID)).start()
context = {}
context.update(csrf(request))
return render_to_response('checkout.html', context)
def processInBackground(username, jobID):
...
(processing the rest of the job)
但是,一旦我运行它:它会创建一个新的线程,但它会终止主线程终止的秒数。有什么办法可以在后端处理这些东西,而用户马上得到感谢信息?
“进程耗时的部分进入不同的线程”。总是错误的做法。你不想要一个线程。你想要一个过程。 –
不,在单独的Django中没有办法做到这一点。您可以使用[芹菜](http://celeryproject.org/)[附加信息的博客文章](http://www.turnkeylinux.org/blog/django-celery-rabbitmq) –