【发布时间】:2016-05-12 19:12:07
【问题描述】:
我有 jruby-9.0.5.0 设置,我尝试使用 sidekiq 进行一些并行处理。一切正常,除了如果我使用超过 12 个 sidekiq 线程,我不断收到以下错误消息:
WARN: I18n::InvalidLocaleData: can not load translations from /Users/geroldboehler/.rvm/gems/jruby-9.0.5.0/gems/rails-i18n-4.0.5/lib/rails_i18n/../../rails/locale/ne.yml: java.lang.ArrayIndexOutOfBoundsException
WARN: /Users/geroldboehler/.rvm/gems/jruby-9.0.5.0/gems/i18n-0.7.0/lib/i18n/backend/base.rb:184:in `load_yml'
导致这种情况的行如下:
I18n.t(".") unless I18n.backend.initialized?
display_names = I18n.backend.send(:translations)[:de][:shoptwist][:display_names]
我需要加载存储在翻译 yml 中的值,第二行导致异常发生。我完全不知道为什么会这样,它可能与同时访问/一些奇怪的多线程问题有关。
更新
我应该提到这在我使用 MRI ruby 时有效,当我切换到 jruby 时问题就开始了。
【问题讨论】:
标签: multithreading jruby sidekiq rails-i18n jrubyonrails