我正在使用Django上传文件和使用ETL作业
subprocess
该作业大约需要15秒才能运行,而不是让用户认为页面被冻结,我想显示一个progress bar.
我可以找出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')
最佳答案 谢谢@Bula,
django-celery是完美的解决方案.
这是一个很好的introductory video开始.