与节点中的后台任务进行通信

时间:2015-04-11 13:36:26

标签: node.js background-process

我有一个在后台运行的任务(从某个地方下载一个大文件)。

我需要客户端能够发出HTTP请求并等待任务状态更新(例如,下载完成百分比发生变化时)。

现在我正在使用黑客 - 我使用require()来获取跟踪所有后台下载的单例,后台下载存储在状态发生变化时得到解决的承诺,所以请求可以只下载[id] .promise.then(res.json.bind(res))。

有没有办法在没有全局单例的情况下执行此操作,但是还没有使用像redis pubsub这样的外部服务?

1 个答案:

答案 0 :(得分:0)

@JonathanR,你的问题在所有账户上都很模糊,但我可能会让你开始。如果您提供更多信息,我相信我可以帮助您。 (这是什么过程?现在你做的简化代码片段?)

我不确定你是否熟悉Child Processes,但这应该让你完全按照自己的意愿行事。您可以运行可以从shell调用的任何命令(如果使用的话),以及启动其他Node程序/进程。很多选择,很多东西需要学习,非常实用。

为什么我认为它适用于您的情况是您的主进程可以生成子进程来管理下载。然后子进程可以在需要知道某些内容时发送更新主进程的消息。

Here's an example in the docs that might be relevant.干杯!