我有一个GAE标准Python应用程序,可以执行一些相当的计算处理。我需要在60秒的请求时限内完成处理,理想情况下,我想更快地进行处理,以获得更好的用户体验。
将工作拆分为多个线程似乎不是一个好的解决方案,因为线程可能会在同一CPU上运行,因此不会提高速度。
我想知道Google Cloud Functions(GCF)是否可以与线程类似地使用。例如,如果我创建一个GCF进行处理,将我的工作分成10个块,并并行进行10个GCF调用,我是否可以期望将结果快10倍? (除了延迟和GCF启动成本)
答案 0 :(得分:3)
每个函数调用都在其自己的服务器实例中运行,并且一个函数最多可扩展到1000个实例,以并行处理并发请求。因此,是的,如果您愿意为分配给第一个请求的每个服务器实例支付冷启动成本,就可以这样做。
答案 1 :(得分:1)
如果您能够通过单独的(外部)请求将要并行启动的工作负载分成较小的块,我怀疑您可以通过使用GAE本身获得更好的性能(和成本)(也许在单独的服务中)而不是CF: