首页 > 解决方案 > 什么谷歌云组件用于我的客户端-服务器发布/订阅?

问题描述

我正在谷歌云上构建一个应用程序来记录用户的录音。用户将录制 1 个或多个音频剪辑并将它们上传到后端,后端将处理剪辑,运行我构建的机器学习预测模型,并将每个上传的音频的整数返回给用户。处理和预测一段音频大约需要 10 秒。用户一次可以上传 20 个音频。

到目前为止,我所拥有的是:

我的问题如下:由于处理完成可能需要 200-300 秒,一旦用户点击上传按钮,我应该如何处理任务?简单的请求响应就足够了吗?

我调查了以下内容:

在这种情况下使用什么合适的技术?

标签: google-app-enginegoogle-cloud-platformgoogle-cloud-functionsgoogle-cloud-pubsub

解决方案


有办法改善用户体验。

首先,在处理上,可以进行并行处理。所有预测都应由相同的 Cloud Functions 处理。在 App Engine 中,您应该有一个多线程处理,它只为一个音频剪辑调用您的云函数,并并行执行 20 次。我不知道如何在 Python 中使用 async 来实现这一点,但我知道你可以

然后,如果您实现了这一点,您将等待所有音频剪辑处理结束,以向您的用户发送响应。总时间应在 15 - 20 秒之间。

如果您使用 Cloud Run,则可以使用流式传输(或部分 HTTP 响应)。因此,当您从云函数获得响应时,您可以发送部分响应,无论音频剪辑是谁(第三个可以在第一个之前完成)。


推荐阅读