2

これが重複していたら本当に申し訳ありませんが、私は検索しており、答えを見つけることができませんでした.

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()、プロセスはすぐにリダイレクトされます。しかし、これについて何か危険なことはありますか?

4

1 に答える 1

3

処理用の別のデーモンを作成し、メッセージ キューを介して通信することを検討してください。

于 2010-03-10T20:51:13.850 に答える