我有一个函数,它分离一个单独的Process并将一些参数传递给它。当我在本地调用此功能测试时,一切都很好。当我从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,但是我不愿立即重构所有内容,因此,如果有人对这里发生的事情有任何了解,我将不胜感激。