7

Ich führe eine Resque-Hintergrundaufgabe aus und bekomme immer einen Segmentierungsfehler, wenn ich ein Juwel anrufe, das Rjb benutzt. Alles funktioniert jedoch gut, wenn es nicht im Hintergrund läuft. Hier ist eine Linie in Juwel, das den Fehler verursacht:Rails: Segmentationsfehler bei Rjb, wenn im Hintergrund, funktioniert gut, wenn nicht im Hintergrund?

def self.rjb_initialize 
    return if ::Rjb::loaded? 
    ::Rjb::load(nil, self.jvm_args) #THIS IS WHERE THE ERROR TRACES TO 
    set_java_logging if self.log_file 
end 

der Edelstein lädt .jar-Dateien wie Sie sehen können, aber auch hier alles funktioniert perfekt, wenn sie nicht im Hintergrund. Was kann das Problem verursachen und ist es möglich, es zu beheben?

Antwort

0

Wenn der Fehler beim Ausführen als Hintergrundaufgabe fehlschlägt, liegt dies höchstwahrscheinlich daran, dass keine Umgebungsvariablen festgelegt wurden. Gemäß der docs sind sowohl LD_LIBRARY_PATH- als auch JAVA_HOME-Einstellungen erforderlich, um rjb in Rails zu verwenden. Ich denke, Sie können sie einfach zu Ihrer environment.rb hinzufügen und sicherstellen, dass die Task 'resque: setup' =>: Umgebung wird verwendet, um die Rails-Umgebung zu laden.

Verwandte Themen