我有一个从形式获取数据,并执行一个子视图:如何正确使用和取消使用Django的Python中的子进程?
def sync_job(request, job_id, src, dest):
form = SyncJobForm()
check = SyncJob.objects.get(id=job_id)
check.status = True
check.save()
pre_sync = SyncJobCMD.objects.get(id=1)
p = Popen([str(pre_sync), '-avu', str(src), str(dest)], stdout=PIPE)
syncoutput,syncerror = p.communicate()
check.log = syncoutput
check.status = False
check.save()
return render_to_response('sync_form.html', {'syncoutput': syncoutput, 'form': form}, context_instance=RequestContext(request))
我想有一个选项,取消正在运行的进程,但我还没有找到如何做到这一点与子进程。另外,当用户运行子流程作业并导航到另一个页面时会发生什么情况,该流程是否会在后台完成?在这种情况下建议使用Shell = True吗?谢谢。