私は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だけで行う方法はありません。 [celery](http://celeryproject.org/)[追加情報付きブログ記事](http://www.turnkeylinux.org/blog/django-celery-rabbitmq) –