script / runner:3:在`require':无法加载这样的文件 - commands / runner(LoadError)

时间:2016-04-01 13:39:19

标签: ruby-on-rails ruby-on-rails-4 cron systemd

我正在尝试使用cron和systemd在我的Rails模型中启动一个类方法。

不幸的是,当cron尝试激活正确的Rails方法时,似乎存在一些路径问题。

下面是我的跑步者脚本,造成问题的一行是第3名:

#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'
require 'commands/runner'

完成后出现以下错误消息:

Apr 01 09:00:01 myapp systemd[1]: Started Myapp ModelA method b.
Apr 01 09:00:02 myapp runner[25783]: /srv/myapp/current/script/runner:3:in `require': cannot load such file -- commands/runner (LoadError)
Apr 01 09:00:02 myapp runner[25783]: from /srv/myapp/current/script/runner:3:in `<main>'

或者也许是因为Rails正在玩愚人节的第一个笑话?

1 个答案:

答案 0 :(得分:0)

问题是myapp最近从Rails 2.3更新到Rails 4.1,作为遗留问题,/script文件夹仍然用于启动跑步者。

在Rails 4中启动runner的正确方法是使用这样的bin / rails脚本:

bin/rails runner "Model.method"

我遇到的另一个问题是我的bin/*文件中指定了.gitignore,因此bin/rails脚本甚至不在服务器中。

我从this stackoverflow postRailsGuides page获得了帮助。