我正在使用用戶點擊的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) –