【问题标题】:How to run a Cron job for Node.js如何为 Node.js 运行 Cron 作业
【发布时间】:2011-02-08 08:29:12
【问题描述】:

我有一个调用 shell 脚本的 cron 作业。

*/2 * * * * sh cron_test.sh >> output.log

在 shell 脚本中,我运行了一些命令行,例如:

#!/usr/bin

./mongo/bin/mongodump .....

FILE_NAME='abc'

node mynode.js $FILENAME

如果我只是在命令提示符下调用 cron_test.sh,它就会运行。但是,如果它由 cronjob 运行,它不会运行 node。它确实运行 mongodump 命令。那么,怎么了?有什么我必须设置的权限等吗?

【问题讨论】:

  • 您确定它可以从命令行运行吗?我的意思是,你还没有定义 FILENAME 变量。
  • 您确定节点在运行 cron 的用户的路径中吗?
  • 你知道你有 2 个文件名变量:FILE_NAMEFILENAME - 对吧?
  • 如果你问我,你应该使用像样的消息队列而不是 cronjobs。例如,Beanstalkd 延迟了 PUTS。
  • 将 cron 条目更改为 */2 * * * * cd WORKDIR && sh ./cron_test.sh >> output.log,其中 WORKDIR 是具有 mongo 子目录的目录,还将 node... 更改为 ./node.../fully/qualified/path/node...。正如 macarthy 指出的那样,假设 cronjobs 在与登录 shell 提供的相同环境中运行是一个常见错误,但事实并非如此。

标签: unix cron node.js


【解决方案1】:

谢谢..我找到了..

要么我需要指定节点路径,要么 在 sh 脚本中执行此操作:

nodejs/node myscript.js

nodejs/node 是节点的安装位置。

【讨论】:

  • 哈利路亚。谢谢你。我已经解决这个问题好几个小时了。
猜你喜欢
  • 1970-01-01
  • 2017-06-05
  • 2017-12-23
  • 1970-01-01
  • 2011-09-27
  • 2011-08-16
  • 2013-07-02
  • 2014-11-02
相关资源
最近更新 更多