I have a django view function that calls another function if a condition is true, the function is called as a separate process, the view returns a status variable which shows if the function was called or not, the status is returned to a ajax click event assigned to a button.
The problem is that when the function 'do_work' is executed ajax success function isn't run until 'do_work' terminates.
view function /update/
if condition:
p = Process(target=do_work, args(pack,))
p.daemon = True
p.start()
success = "True"
else:
success = "False"
print success
return HttpResponse(success)
Ajax call
$('button.update').click(function() {
id = $(this).attr('id');
$.post("/update/", {
pack : id,
}, function(result){
alert(result);
});
return false;
});
the 'print success' gets executed right away in both cases, but the alert wont pop up until the function do_woks terminates