【问题标题】:Connect to a child process after navigating away from the page离开页面后连接到子进程
【发布时间】:2014-04-23 11:15:30
【问题描述】:

我正在将 SailsJS 用于 Web 应用程序,该应用程序基本上允许用户从互联网(比如 youtube)下载和处理任何视频。用户输入视频链接,如果可用,我的sails 应用程序会下载视频,然后开始使用 shell 脚本处理下载的视频(来 OpenCV 处理以查找不同的帧)。

这个过程需要很长时间才能完成,用户可以离开页面并做任何他想做的事情。现在,要稍后通过访问此页面来检查进度,我需要能够连接之前为此视频文件创建的子进程。

我想出了两种可能的解决方案:

1) 使用gearman 实现作业服务器并在用户每次导航到页面时连接到它,并开始获取回调事件并根据它们显示进度。这是我第一次使用 gearman。

2) 以某种方式将子进程的 processID 存储在 session/db 中,然后使用它通过 ps-node 查找进程。

以下哪一个是更好的方法(如果您认为它们可以正常工作)?或者还有其他我不知道的解决方案吗?任何指向正确方向的指针都将不胜感激。

【问题讨论】:

    标签: node.js sails.js gearman child-process


    【解决方案1】:

    让我们从第二个选项开始。不要使用它。仅仅是因为这样,您的网站用户将可以更好地控制服务器上运行的进程数量。

    第一个要好得多,但使用单独的作业服务器对我来说似乎有点矫枉过正(我不得不承认,虽然我并不完全了解你的计划规模)。

    底线,我会使用消息/作业队列(kue 似乎非常适合我)并将进度存储在 DB 或(最好)Redis(或您正在使用的任何缓存)中。

    【讨论】:

      猜你喜欢
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      相关资源
      最近更新 更多