J'ai une vue qui obtient des données à partir d'une forme et exécute un sous-processus:Comment utiliser correctement et annuler un sous-processus en python en utilisant Django?
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))
Je voudrais avoir une option pour annuler le processus en cours d'exécution, mais je ne l'ai pas trouvé comment faire avec le sous-processus. En outre, que se passe-t-il lorsqu'un utilisateur exécute un travail de sous-processus et navigue vers une autre page, le processus se termine-t-il en arrière-plan? Est-il conseillé d'utiliser Shell = True dans ce scénario? Merci.