【发布时间】: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