我有一个 jruby/rails 应用程序,使用:
jruby 1.4.0
Rails 2.3.5
ActiveMQ 5.3.0
Mule ESB 2.2.1
目前在我们的 environment.rb 文件中,我们在初始化程序中启动 Mule。当我们去执行不需要 JMS/Mule 的普通 rake 任务(例如 db:migrate)时,这会变得很痛苦,因为每次启动/关闭 Mule 都需要很长时间。
代码与此类似:
APP_CONTEXT = Java::our.company.package.service_clients.Initializer.getAppContext(MULE_CONFIG_PATH)
我们使用APP_CONTEXT
获取 bean 来连接到适当的服务。
我试图找出一些可以延迟实例化 APP_CONTEXT 的机制(不在初始化中),以避免在初始化时必须启动 Mule 的所有痛苦。
目前,我们有一些 ruby 客户端类,它们在 application_controller 中被实例化为 before_filter,例如@data_service = DataService.new(APP_CONTEXT)
为每个请求初始化适当的 java 客户端以在我们的控制器中使用。
我愿意接受所有建议。我很难找到合适的位置来放置这个懒惰的实例。