2016-05-21 4 views
3

特定のノードスクリプトを特定の時間に実行するためにnode-scheduleを使用したいと思います。 node.jsでこれを行うことはできますか?ノードスクリプト内からノードスクリプトを実行する

var schedule = require('node-schedule'); 

//https://www.npmjs.com/package/node-schedule 
var j = schedule.scheduleJob('00 00 22 * * *', function() { 
    console.log('Running XX node.js script ...'); 

    NodeShell.run(__dirname + '\\XX.js', function (err) { 
     if (err) throw err; 
     console.log('finished'); 
    }); 
}); 

NodeShellなどが存在するかどうかわかりません。他の選択肢も歓迎されるだろう。

+1

[バンチ](https://nodejs.org/api/child_process.html#child_process_asy)があります。 nchronous_process_creation)を使用してnode.js内のプロセスを生成します。 –

+0

'child_process'モジュールを使用して新しいプロセスを作成したくない場合は、' vm'が行く方法です:http://stackoverflow.com/a/8808328/405398 –

+0

なぜ単にrequireを使用するだけではないのですか?実行中のノードスクリプトは意味がありませんが、いくつかのbashやその他のスクリプトは大丈夫です! – owaishanif786

答えて

7

いくつかのオプションがあります。これらのオプションはすべてdocs for child_processに記載されています。簡単に言えば:

  • child_process.execはシェルにノードプロセス
  • child_process.spawnは、あなたがこのようなものを使用することができたノードのスクリプトを実行するために、あなたのケースのためのプロセス

を生成します

  • child_process.forkフォークを生成します
    var childProcess = require("child_process"); 
    var path = require("path"); 
    var cp = childProcess.fork(path.join(__dirname, "xx.js")); 
    cp.on("exit", function (code, signal) { 
        console.log("Exited", {code: code, signal: signal}); 
    }); 
    cp.on("error", console.error.bind(console)); 
    
  • 関連する問題