У меня есть функция, которая выделяет отдельный процесс и передает ему некоторые аргументы.Когда я вызываю эту функцию тестирования локально, все в порядке.Когда я вызываю эту функцию из представления Django, передаваемые переменные не имеют никакого смысла.В частности, когда я передаю строку, то с другой стороны, независимо от того, какую строку я вставляю, получается __path__
.Упрощенный пример:
views.py:
handler = Handler()
@csrf_exempt
def my_view_func(request)
str1 = request.POST['str1'] # passed value is e.g. 'my string'
return HttpResponse(handler.do_work(str1))
handler.py
from multiprocessing import Process
class Handler:
def do_work(str1):
# str1 is still 'my string'
p = Process(target=self.do_work_help, args=(str1))
p.start()
# str1's value is again in this context
def do_work_help(str1):
print str1 # value will be '__path__'
Из того, что я прочитал, я, вероятно, должен использовать Celery для этого, ноЯ бы предпочел пока не проводить рефакторинг всего, поэтому, если у кого-то есть какие-либо идеи о том, что здесь происходит, я очень признателен за краткосрочное исправление.