我创建了一个App Engine服务来对视频文件和图像进行转码。视频文件可能很大,因此将需要更长的处理时间。 Cloud Tasks看起来很合适,但是我的前端客户端需要在执行过程中监视任务。
例如,如果用户上传视频文件,我想让客户端了解他们的上传进度。我在文档中的任何地方都看不到显示如何从正在执行的任务(或可以将这些更新发送到的API)中请求此信息的地方。我当前的实现使用Web套接字来中继此信息,但是,如果许多客户端开始上传视频,这似乎是不可扩展的。我的想法是将任务状态存储在NoSQL db中,并在上传视频文件时将DB任务ID返回给客户端。然后,我只轮询数据库以获取更新。
这是正确的还是有更好的方法?
答案 0 :(得分:0)
这种方法来自不同的角度,但我的建议是尽可能少地移动董事会。
如果您已经开发了nodeJS应用程序来执行视频操作,请使用通知系统或Service Worker之类的工具来完成它们。 https://www.youtube.com/watch?v=HlYFW2zaYQM
同时,您可以使用PubSub并完整地了解通知/事件:
“以任意规模摄取事件”
无论您是构建流,批处理还是统一管道,数据摄取都是分析和机器学习的基础。 Cloud Pub / Sub在处理,存储和分析过程中为事件数据提供了一个简单可靠的暂存位置。