これが重複していたら本当に申し訳ありませんが、私は検索しており、答えを見つけることができませんでした.
Djangoでは、次のようなことをしたい(コメントを参照):
# we have a file in our database...
v = create_file_entry(clean_data, ip_address)
# next, start a *background process* to upload the file somewhere else...
p = Process(target=upload_file, args=(filepath,v))
p.start()
p.join()
# ...we don't care about the result of the process, or
# wait for it to finish, just redirect the user to success *immediately*
return HttpResponseRedirect('/success/')
コードで upload_file プロセスを開始し、プロセスがバックグラウンドで実行されている間 (遅い)、すぐにユーザーを成功ページにリダイレクトする必要があります。upload_file
サブプロセスがこれを行う可能性があると思いました。
残念ながら、上記のコードはupload_file
、ユーザーを成功ページにリダイレクトする前にプロセスが終了するのを待っているようですが、これは私が必要としているものではありません。
私のファイルupload_file
のPython関数であることに注意してください。views.py
聞いたことがあります-スタンドアロンのPythonスクリプトにpopen
変換してコマンドラインから実行できると思います-それは実行を開始し、すぐにユーザーをリダイレクトしますか? def upload_file
または、ある種のスレッド/プロセスを使用する必要がありますか?
- - アップデート - - -
私はそれを理解したかもしれないと思います...私がそうしp.start()
てNOTを実行するとp.join()
、プロセスはすぐにリダイレクトされます。しかし、これについて何か危険なことはありますか?