Django +多处理参数传递失败

时间:2018-12-30 15:58:46

标签: python django python-multiprocessing

我有一个函数,它分离一个单独的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,但是我不愿立即重构所有内容,因此,如果有人对这里发生的事情有任何了解,我将不胜感激。

0 个答案:

没有答案