Рабочий процесс, с которым я имею дело (для пользователя), выглядит следующим образом:
- Пользователь отправляет информацию и файлы с формой
- Форма сохраняется
- Выполнена дополнительная обработка после сохранения
Это хорошо, но обработка после сохранения занимает довольно много времени, поэтому я собираюсь сделать это в фоновом режиме и выпустить HttpResponseRedirect для сообщения, информирующегопользователь, что обработка происходит и, пожалуйста, вернитесь позже.К сожалению, это не похоже на работу;в данный момент у меня есть следующее:
if form.is_valid():
p = multiprocessing.Process(target=form.save)
p.start()
return HttpResponseRedirect('/running')
Но ошибка, которую я получаю, заключается в следующем:
IOError at /content/script/new/
sys.stdout access restricted by mod_wsgi
...
/usr/lib/python2.6/multiprocessing/forking.py in __init__
# We define a Popen class similar to the one from subprocess, but
# whose constructor takes a process object as its argument.
#
class Popen(object):
def __init__(self, process_obj):
>>>> sys.stdout.flush() ...
sys.stderr.flush()
self.returncode = None
self.pid = os.fork()
if self.pid == 0:
if 'random' in sys.modules:
▼ Local vars
Variable Value
process_obj
<Process(Process-1, initial)>
self
<multiprocessing.forking.Popen object at 0xb8a06dec>
Есть ли у python более волшебный способ сделать это?Джанго ли?Если нет, то как я могу пойти дальше и использовать многопроцессорность?