2016-04-01 12 views
0

Ich versuche eine Klassenmethode in meinem Rails-Modell mit cron und systemd zu starten.script/runner: 3: in `require ': kann keine solche Datei laden - commands/runner (LoadError)

Unglücklicherweise scheint es irgendein Pfadproblem zu geben, wenn Cron versucht, die richtige Rails-Methode zu aktivieren.

Unten ist mein runner-Skript und die Linie das Problem verursacht, ist die dritte:

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

komplette Fehlermeldung, nachdem das ist unten dargestellt:

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>' 

Oder vielleicht ist es, weil Rails spielt Aprilscherz auf mich?

+0

Ich fand teilweise ähnliches Problem: https://www.ruby-forum.com/topic/1749534 aber ich verwende rvm nicht dort, also denke ich, dass es nicht viel hilft. –

Antwort

0

Problem war, dass myapp wurde kürzlich von Rails 2.3 auf Rails 4.1 aktualisiert und als Legacy /script Ordner wurde noch für den Start Läufer verwendet.

Die richtige Art und Weise Läufer in Rails zu starten 4 wäre bin zu verwenden/Schienen-Skript wie folgt aus:

bin/rails runner "Model.method" 

Ein weiteres Problem, das ich hatte, war, dass ich hatte bin/* in meiner .gitignore-Datei angegeben, so bin/rails Skript nicht sogar im Server.

Ich habe Hilfe von this stackoverflow post und von RailsGuides page.

Verwandte Themen