【问题标题】:Run rails runner methods from crontab从 crontab 运行 rails runner 方法
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • 这不起作用。就像我在问题中所说的那样,我已经尝试了 /bin/bash -l -c 命令但没有成功。我也尝试以这种方式运行一个 ruby​​ 文件 (.rb)。没有运气。我们使用 rvm,是这个问题吗?
猜你喜欢
  • 2021-01-17
  • 2021-07-01
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 2012-09-07
  • 1970-01-01
  • 2018-12-27
相关资源
最近更新 更多