7

我正在运行 Resque 后台任务,并且在调用使用 Rjb 的 gem 时不断出现分段错误。一切正常,但不在后台运行时。这是 gem 中的一行,导致错误:

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

如您所见,gem 会加载 .jar 文件,但同样,当不在后台时,一切正常。什么可能导致问题,是否可以解决?

4

1 回答 1

0

鉴于错误在作为后台任务运行时似乎失败,这很可能是由于未设置环境变量。根据文档,需要 LD_LIBRARY_PATH 和 JAVA_HOME 设置才能在 Rails 中使用 rjb。我认为您可以将它们添加到您的environment.rb并确保任务 'resque:setup' => :environment用于加载 Rails 环境。

于 2015-02-04T06:35:05.140 回答