从 crontab 运行 rails runner 方法



我们必须从一个非常旧的rails应用程序运行一些rails方法。因为它太旧了,所以我们不想更改代码或安装新的调度任务或 gem。因此,我们尝试通过crontab中的简单rails运行器命令启动这些方法。

我们

尝试了一些组合,但服务器对我们来说是新的,我们不知道为什么 crontab 无法执行rails runner命令。

这些是我们的尝试:

rails runner ApplicationController.method >> logfile.log
/bin/bash -l -c 'cd /path/to/code && rails runner ApplicationController.method' >> logfile.log
source ~/.bashrc && /bin/bash -l -c 'cd /path/to/code && rails runner ApplicationController.method' >> logfile.log
running a shell script with the rails runner command
ect.

所有的尝试都在正常的shell(通过SSH连接)中工作,但它从未从crontab工作过。命令始终创建日志文件,但它为空,我们确保命令未执行(由 rails c 检查)。

我们可以做些什么来使 crontabs 工作?

编辑:服务器使用rvm来管理 Ruby 版本。也许这就是问题所在。

要在 crontab 中执行 ruby/rails 脚本,请使用/bin/bash。例:

  * * * * *  /bin/bash -l -c    "ruby /home/abc/sample.rb"

相关内容

最新更新