Djangoを使用してファイルをアップロードし、ETLジョブを使用してキックします
サブプロセス
ジョブの実行には約15秒かかります。ユーザーにページがフリーズしていると思わせるのではなく、進行状況バーを表示したいと思います。
プログレスバーを更新するためにAJAXを理解することはできますが、方法がわからないのは、サブプロセスの実行中にHttpResponseを返すことです。おそらくスレッド化が解決策ですか?私はそこでの経験がありません。誰かが私にいくつかのガイダンスを与えることができますか?
ビューは次のとおりです。
def start_job(request):
if request.method == 'POST':
form = UploadForm(request.POST, request.FILES)
if form.is_valid() and form.is_multipart():
save_file(form.cleaned_data['file'])
subprocess.call(["Kitchen.bat", "/file:job.kjb"])
return HttpResponseRedirect('/success/')
else:
form = UploadForm()
return render_to_response('template.html')