这是我的第一个 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();
})
}
});
这工作正常,当工作完成时,我会看到日志,但我想知道是否有更好的方法可以做到这一点,以便在结果可用时我可以开始发送它们。欢迎任何建议。