如何获取当前任务状态-Google Cloud Task + App Engine(NodeJS)

时间:2019-08-12 19:28:47

标签: google-app-engine google-cloud-platform google-cloud-tools

我创建了一个App Engine服务来对视频文件和图像进行转码。视频文件可能很大,因此将需要更长的处理时间。 Cloud Tasks看起来很合适,但是我的前端客户端需要在执行过程中监视任务。

例如,如果用户上传视频文件,我想让客户端了解他们的上传进度。我在文档中的任何地方都看不到显示如何从正在执行的任务(或可以将这些更新发送到的API)中请求此信息的地方。我当前的实现使用Web套接字来中继此信息,但是,如果许多客户端开始上传视频,这似乎是不可扩展的。我的想法是将任务状态存储在NoSQL db中,并在上传视频文件时将DB任务ID返回给客户端。然后,我只轮询数据库以获取更新。

这是正确的还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

这种方法来自不同的角度,但我的建议是尽可能少地移动董事会。

如果您已经开发了nodeJS应用程序来执行视频操作,请使用通知系统或Service Worker之类的工具来完成它们。 https://www.youtube.com/watch?v=HlYFW2zaYQM

同时,您可以使用PubSub并完整地了解通知/事件:

“以任意规模摄取事件”

无论您是构建流,批处理还是统一管道,数据摄取都是分析和机器学习的基础。 Cloud Pub / Sub在处理,存储和分析过程中为事件数据提供了一个简单可靠的暂存位置。