如果Cron作业无法看到sailsjs模型的节点的NVM安装问题

时间:2015-07-27 18:06:06

标签: cron sails.js nvm

我的工作是在Ubuntu服务器上每5分钟从Web API获取一次数据:

*/5 * * * * /home/<u>/.nvm/versions/node/v0.12.5/bin/node /home/<u>/api/jobs/fetch-data.js >> /home/<u>/log/fetch.log 2>&1

如果我跑:

/home/<u>/.nvm/versions/node/v0.12.5/bin/node /home/<u>/api/jobs/fetch-data.js

从我的命令行,一切正常。但是当cron作业试图运行它时会出错,因为它无法找到我在任务中使用的模型。

我使用节点版本管理器安装了节点。我有一个更简单的任务,能够使用本地node_module dependnencies执行就好了,看起来好像发生的任何引导:

sails.load()

方法不好玩。我对节点世界很陌生,所以事物的内部运作仍然非常“在板子后面发生了魔法”。我希望其他人已经遇到过这个问题,这只是我犯的一个简单错误。

我写了一个小小的测试,看看我的更大的api fecting进程是做什么的,只是试图从数据库中提取一些事件并将它们写入控制台:

var Sails   = require('sails');

Sails.load(function(err, sails) {
   if(err) {
       throw err;
   }

    Events.find({}).exec(function(err, events) {
        if(err) throw new Error(err);
        
        events.forEach(function(event) {
            console.log(event);
            process.exit();
        });
        
    });
});

此代码使用nvm use 0.12,然后node api/jobs/simple.js或仅使用:

运行
/home/<u>/.nvm/versions/node/v0.12.5/bin/node /home/<u>/api/jobs/simple.js

工作正常。

但是这个:

 /home/<u>/.nvm/versions/node/v0.12.5/bin/node /home/<u>/api/jobs/simple.js
cron作业设置中的

表示事件未定义的错误

[编辑] 我不认为这是一个答案,但我使用了:https://www.npmjs.com/package/sails-hook-schedule

更改了4行代码,至少我现在可以安排数据提取。

我希望我能在cron-nvm-sails问题上得到一些帮助。

0 个答案:

没有答案