【发布时间】:2016-06-18 00:11:38
【问题描述】:
我们必须从一个非常旧的 rails 应用程序中运行一些 rails 方法。因为它太旧了,我们不想更改代码或安装新的调度任务或 gem。所以我们尝试在 crontab 中通过一个简单的 rails runner 命令来启动这些方法。
我们尝试了一些组合,但是服务器对我们来说是新的,我们不知道为什么 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 检查)。
我们可以做些什么来让 crontab 正常工作?
编辑: 服务器使用rvm 管理ruby 版本。也许这就是问题所在。
【问题讨论】:
-
有什么解决方法吗?面临同样的问题。使用
rvm运行 ruby
标签: ruby-on-rails ruby crontab