Python瓶子框架-在新进程中运行请求的插件(通过多处理)

Python瓶子框架-在新进程中运行请求的插件(通过多处理),python,multiprocessing,bottle,Python,Multiprocessing,Bottle,我有一个用瓶子框架构建的相当简单的api。api中的方法/路由之一是CPU密集型的。因此,在调用此方法时,我希望使用标准Python多处理模块生成一个单独的进程,以避免在并发执行该方法时出现的GIL问题 我意识到,如果这种方法由于一些原因而非常糟糕,那么这就是我现在必须处理的问题。下面的代码片段不起作用 def run_in_new_process(callback): def wrapper(*args, **kwargs): pool = multiprocessin

我有一个用瓶子框架构建的相当简单的api。api中的方法/路由之一是CPU密集型的。因此,在调用此方法时,我希望使用标准Python多处理模块生成一个单独的进程,以避免在并发执行该方法时出现的GIL问题

我意识到,如果这种方法由于一些原因而非常糟糕,那么这就是我现在必须处理的问题。下面的代码片段不起作用

def run_in_new_process(callback):
    def wrapper(*args, **kwargs):
        pool = multiprocessing.Pool(processes=1)
        result = pool.apply_async(callback, (*args, **kwargs))
        return result.get()
    return wrapper

你有什么错误?为什么in worki没有更改为-result=pool.apply\u async(回调,args=args)。但是我得到了关于回调函数的pickle错误。从一个进程发送到另一个进程的数据,在本例中,回调函数需要修改。只有在模块的顶层定义的函数才能被pickle,而不是在函数或方法中定义的函数。你找到这个问题的解决方案了吗?