Rubyでjavascriptを評価しようとしています。
config/initializer/initializer_context.rb
js_str =
EXEC_PP_CONTEXT = ExecJS.compile("function test_add(param) { return param.a+ param.b;}")
そして、コントローラーで使用しています:
data_hash = {:a=>4,:b=>5}
EXEC_PP_CONTEXT.exec("return test_add(#{data_hash.to_json})")
しかし、時々このエラーが発生します(100リクエストに1回)
can not use Context instance already associated with some thread
スタック:
- ruby 1.9 モードの jruby-1.7.3
- jruby_min_runtimes と jruby_min_runtimes が 1 のトリニダード サーバー
- レール3.2.13
- テルビリノ 2.0.2
すでに最大ランタイムと最小ランタイムを 1 に設定している場合、そもそもこの問題を回避すべきではありませんか?