【问题标题】:How to get current task status - Google Cloud Task + App Engine (NodeJS)如何获取当前任务状态 - Google Cloud Task + App Engine (NodeJS)
【发布时间】:2019-08-13 09:35:04
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    这种方法来自不同的角度,但我的建议是移动不太可能的部分。

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

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

    “摄取任何规模的事件”

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

    【讨论】:

    • 谢谢@Mario。我无法协调的 pub/sub 问题是查询特定作​​业并将该作业的状态转发回启动它的客户端。这就是为什么我认为将工作保存在数据库中更有意义的原因。任何与 pub/sub 相关的方向都将不胜感激。
    猜你喜欢
    • 2019-09-08
    • 1970-01-01
    • 2011-04-29
    • 2013-07-28
    • 2011-09-23
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多