7

Sto eseguendo un'attività in background Resque e continuo ad ottenere errori di segmentazione, quando si chiama una gemma, che utilizza Rjb. Tutto funziona bene, però, quando non si esegue in background. Ecco una linea di gemma, che causa l'errore:Rails: errore di segmentazione su Rjb quando è in background, funziona bene quando non è in background?

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 

I carichi gemma .jar file, come si può vedere, ma ancora una volta, tutto funziona perfettamente, quando non è in background. Cosa può causare il problema ed è possibile risolverlo?

risposta

0

Dato che l'errore sembra non riuscire durante l'esecuzione come attività in background, questo è molto probabilmente dovuto a variabili ambientali non impostate. In base allo docs, sono necessarie entrambe le impostazioni LD_LIBRARY_PATH e JAVA_HOME per utilizzare rjb in Rails. Penso che puoi semplicemente aggiungerli al tuo ambiente .rb e garantire l'attività "resque: setup '=>: environment viene utilizzato per caricare l'ambiente Rails.