【发布时间】:2019-09-23 11:59:59
【问题描述】:
我在云存储桶中有数千个日志文件,我需要使用 HTTP 触发的云函数来处理和聚合这些文件,并且正在寻找一种使用并行化以最快的方式计算任务的方法。
目前,我有两个云功能(nodejs 8):
用户调用的“main”函数直接传递需要处理的日志文件列表;该函数为每个提供的日志文件调用“子”函数,我还通过使用 async.each 并行运行的 HTTP 请求触发这些日志文件。 “child”函数处理单个日志文件并将数据返回给“main”函数,该函数汇总结果,并在处理完所有文件后将结果发送回用户。
如果我直接调用子函数,完成一个文件大约需要1秒。我希望如果我调用 main 函数来并行处理 100 个文件,时间仍然或多或少 1 秒。批次中的第一个文件确实是1秒后返回,但是时间随着每个文件的增加而增加,第100个文件是7秒后返回。
最可能的罪魁祸首是我正在使用 HTTP 请求运行子函数,但我还没有找到“内部”调用它们的方法。是否有另一种特定于 Google Cloud Functions 的方法,或者我可以以某种方式优化 HTTP 请求的并行化?
【问题讨论】:
标签: google-cloud-functions google-cloud-storage