django中pool.map中的错误只返回有错误的事实,而不是映射函数中的错误

时间:2013-03-05 23:53:54

标签: python django python-multithreading django-errors

我在Django中有一些相当大的代码,我使用pool.map()来并行化它。

它的超级细分如下:

def addNumbers(server):
    conn = Connection(server)
    return conn.something.something

def home(request):
    c = {}
    pool = Pool(processes=4)
    c['myResult'] = pool.map(addNumbers, servers)
    pool.close()
    return render_to_response('homepage.html', c, context_instance=RequestContext(request))

主视图调用addNumbers并将一些数据回送到页面。

然而,当像addNumbers这样的函数变得庞大时,我将不可避免地写入一个错误,并且您收到以下错误消息:

/usr/lib/python2.6/site-packages/Django-1.4.3-py2.6.egg/django/core/handlers/base.py
     在get_response中

                              response = callback(request,* callback_args,** callback_kwargs)...

▶ Local vars
/path-to-my-views/views.py in home
    c['myResult'] = pool.map(addNumbers, servers) ...

▶ Local vars
/usr/lib64/python2.6/multiprocessing/pool.py in map
        return self.map_async(func, iterable, chunksize).get() ...

▶ Local vars
/usr/lib64/python2.6/multiprocessing/pool.py in get
            raise self._value ...

▶ Local vars

这只是告诉我在并行化的函数中存在某处的错误,但实际上哪个行可以找到错误,就像正常的错误消息一样

超级沮丧,任何人都有任何想法(除了“写出更好的代码”:P)

0 个答案:

没有答案