在Google App Engine(Python)中并行运行多个函数



我正试图在我的谷歌应用程序引擎上并行运行多个函数。目前,我正在使用多处理,但它似乎不起作用,因为每当我通过API调用运行以下内容时,它似乎不会产生任何结果:

from multiprocessing import Pool
result_objs = []
with Pool(processes=3) as pool:
df1 = pool.apply_async(function1, (input_postcode, input_category1))
df2 = pool.apply_async(function2, (input_postcode, input_category2))
df3 = pool.apply_async(function3, (input_postcode, input_category3))
result_objs.append(df1)
result_objs.append(df2)
result_objs.append(df3)
results = [result.get() for result in result_objs]

是因为GAE只有1个CPU吗?是因为多处理库在GAE上不起作用吗?谷歌是否为多处理提供了一个等效的库?我看到了下面的谷歌库,但不太确定这将如何应用于我的情况?

from google.appengine.api import taskqueue

单个CPU并不意味着它只能处理一个进程。无论如何,所讨论的CPU是一个虚拟CPU。

根据SO的回答,有一些资源表明Flexible上可以使用多访问,但Standard上没有。Gunicorn用于为应用程序的多个实例提供服务,每个实例都在一个GAE实例上的独立进程中,因此多处理确实有效,至少在GAE实例级别上有效。我不能100%确定它是否在每个Gunicorn应用程序实例上都有效。。。

你的实际GAE日志是怎么写的?

您正在运行哪种风格的GAE?弹性还是标准?

最新更新