首页 > 解决方案 > 如何获取当前任务状态 - Google Cloud Task + App Engine (NodeJS)

问题描述

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

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

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

标签: google-app-enginegoogle-cloud-platformgoogle-cloud-tools

解决方案


该方法来自不同的角度,但我的建议是移动不太可能的董事会部分。

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

同时,您可以使用 PubSub 并制作有关通知/事件的完整铃声:

“摄取任何规模的事件”

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


推荐阅读