これは私にとって初めての Meteor アプリケーションです。フレームワークを学ぼうとすることにとても興奮しているので、一連のコマンド ライン プロセスを管理する内部 Web サイトを構築しました。これらのコマンド ライン プロセスの多くは、実行に 10 ~ 20 分かかります。そのため、プロセスの実行時に stdout をパイプでユーザーに戻すなど、実行中にユーザーにフィードバックを提供できることを望んでいました。今、私はこれをやっています:
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();
})
}
});
これは正常に機能し、ジョブが完了するとログが表示されますが、結果が利用可能になったときに送信を開始できるようにするためのより良い方法があるかどうか疑問に思っていました. どんなアドバイスでも大歓迎です。