以下を使用した jruby/rails アプリがあります。
jruby 1.4.0
Rails 2.3.5
ActiveMQ 5.3.0
Mule ESB 2.2.1
現在、environment.rb ファイルでは、イニシャライザで Mule を起動しています。db:migrate などの JMS/Mule を必要としない通常の rake タスクを実行する場合、毎回 Mule を起動/シャットダウンするのに長い時間がかかるため、これは大きな苦痛になります。
コードは次のようになります。
APP_CONTEXT = Java::our.company.package.service_clients.Initializer.getAppContext(MULE_CONFIG_PATH)
そしてAPP_CONTEXT
、適切なサービスに接続するために Bean をフェッチするために使用します。
初期化時にMuleを起動しなければならないというすべての苦痛を回避するために、APP_CONTEXTを(初期化ではなく)遅延してインスタンス化できるメカニズムを見つけようとしています。
現在、application_controller で before_filter としてインスタンス化される ruby クライアント クラスがいくつかあります。これ@data_service = DataService.new(APP_CONTEXT)
は、コントローラーで使用するための各要求に対して適切な Java クライアントを初期化するなどです。
私はすべての提案を受け入れます。この怠惰なインスタンス化を配置する適切な場所を見つけるのに苦労しています。