Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将标准数据流发送到Meteor网站_Meteor - Fatal编程技术网

将标准数据流发送到Meteor网站

将标准数据流发送到Meteor网站,meteor,Meteor,这是我的第一个Meteor应用程序,我真的很高兴尝试学习该框架,所以我刚刚建立了一个内部网站,将管理一系列命令行过程。许多这样的命令行进程需要10-20分钟才能执行,所以我希望在执行过程中能够向用户提供反馈,比如在进程执行时将标准输出反馈给用户。现在我正在这样做: var require __meteor_bootstrap__.require var sys = require('sys') var exec = require('child_process').exec; Meteor.m

这是我的第一个Meteor应用程序,我真的很高兴尝试学习该框架,所以我刚刚建立了一个内部网站,将管理一系列命令行过程。许多这样的命令行进程需要10-20分钟才能执行,所以我希望在执行过程中能够向用户提供反馈,比如在进程执行时将标准输出反馈给用户。现在我正在这样做:

var require __meteor_bootstrap__.require
var sys = require('sys')
var exec = require('child_process').exec;

Meteor.methods({
  foo: function(job_id) {
    var select = { _id: job_id };
    var execCommand = "dir /s"; // or whatever it is I'm doing
    exec(execCommand, function(error, stdout, stderr) {
      Fiber (function() {
        Jobs.update(select, {$set: { logs: stdout }});
      }).run();
    })
  }
});

这很好,当作业完成时,我会看到日志,但我想知道是否有更好的方法可以这样做,以便在结果可用时开始发送它们。欢迎任何建议

我将使用MongoDB
$push
操作符逐行追加输出,而不是每次都重置“日志”的内容。我想这会为你节省一些带宽


但除此之外,
exec
不会定期调用您的函数。看看这个问题的解决方法。

我会使用MongoDB
$push
操作符逐行追加输出,而不是每次都重置“日志”的内容。我想这会为你节省一些带宽

但除此之外,
exec
不会定期调用您的函数。看看这个问题的解决方法