从节点脚本中运行节点脚本

时间:2016-05-21 00:57:50

标签: node.js shell

我想使用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 个答案:

答案 0 :(得分:8)

您有几个选项,所有选项都列在docs for child_process中。简言之:

  • child_process.exec生成一个shell
  • child_process.fork分叉节点进程
  • child_process.spawn会产生一个过程

对于您的情况,要运行节点脚本,您可以使用以下内容:

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));